home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / self / contrib.lha / contrib / self-mode / self-mode.shar < prev    next >
SHell self-extracting ARchive  |  1993-07-24  |  17.3 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: SHell self-extracting ARchive (archive/shar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file shell archive text default
99% file POSIX shell script text executable default
98% file Lisp/Scheme program text default
97% file a /bin/sh script, ASCII text executable default (weak)
82% TrID shar SHell self-extracting aRchive default
17% TrID Linux/UNIX shell script default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% gt2 Shell Skript: '/bin/sh' default (weak)
100% detectItEasy Format: plain text[LF] default (weak)
100% binwalkID Executable script, shebang: "/bin/sh" default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 23 21 2f 62 69 6e 2f 73 | 68 0a 23 20 54 68 69 73 |#!/bin/s|h.# This|
|00000010| 20 69 73 20 61 20 73 68 | 65 6c 6c 20 61 72 63 68 | is a sh|ell arch|
|00000020| 69 76 65 20 28 70 72 6f | 64 75 63 65 64 20 62 79 |ive (pro|duced by|
|00000030| 20 73 68 61 72 20 33 2e | 35 30 29 0a 23 20 54 6f | shar 3.|50).# To|
|00000040| 20 65 78 74 72 61 63 74 | 20 74 68 65 20 66 69 6c | extract| the fil|
|00000050| 65 73 20 66 72 6f 6d 20 | 74 68 69 73 20 61 72 63 |es from |this arc|
|00000060| 68 69 76 65 2c 20 73 61 | 76 65 20 69 74 20 74 6f |hive, sa|ve it to|
|00000070| 20 61 20 66 69 6c 65 2c | 20 72 65 6d 6f 76 65 0a | a file,| remove.|
|00000080| 23 20 65 76 65 72 79 74 | 68 69 6e 67 20 61 62 6f |# everyt|hing abo|
|00000090| 76 65 20 74 68 65 20 22 | 21 2f 62 69 6e 2f 73 68 |ve the "|!/bin/sh|
|000000a0| 22 20 6c 69 6e 65 20 61 | 62 6f 76 65 2c 20 61 6e |" line a|bove, an|
|000000b0| 64 20 74 79 70 65 20 22 | 73 68 20 66 69 6c 65 5f |d type "|sh file_|
|000000c0| 6e 61 6d 65 22 2e 0a 23 | 0a 23 20 6d 61 64 65 20 |name"..#|.# made |
|000000d0| 30 35 2f 31 34 2f 31 39 | 39 33 20 32 31 3a 34 35 |05/14/19|93 21:45|
|000000e0| 20 55 54 43 20 62 79 20 | 72 69 63 68 61 72 64 73 | UTC by |richards|
|000000f0| 40 68 61 6d 6d 69 6e 67 | 0a 23 20 53 6f 75 72 63 |@hamming|.# Sourc|
|00000100| 65 20 64 69 72 65 63 74 | 6f 72 79 20 2f 74 6d 70 |e direct|ory /tmp|
|00000110| 5f 6d 6e 74 2f 68 6f 6d | 65 2f 32 75 73 65 72 32 |_mnt/hom|e/2user2|
|00000120| 2f 72 69 63 68 61 72 64 | 73 2f 65 6c 2f 72 65 6c |/richard|s/el/rel|
|00000130| 65 61 73 65 0a 23 0a 23 | 20 65 78 69 73 74 69 6e |ease.#.#| existin|
|00000140| 67 20 66 69 6c 65 73 20 | 77 69 6c 6c 20 4e 4f 54 |g files |will NOT|
|00000150| 20 62 65 20 6f 76 65 72 | 77 72 69 74 74 65 6e 20 | be over|written |
|00000160| 75 6e 6c 65 73 73 20 2d | 63 20 69 73 20 73 70 65 |unless -|c is spe|
|00000170| 63 69 66 69 65 64 0a 23 | 0a 23 20 54 68 69 73 20 |cified.#|.# This |
|00000180| 73 68 61 72 20 63 6f 6e | 74 61 69 6e 73 3a 0a 23 |shar con|tains:.#|
|00000190| 20 6c 65 6e 67 74 68 20 | 20 6d 6f 64 65 20 20 20 | length | mode |
|000001a0| 20 20 20 20 6e 61 6d 65 | 0a 23 20 2d 2d 2d 2d 2d | name|.# -----|
|000001b0| 2d 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 20 2d 2d 2d |- ------|---- ---|
|000001c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001e0| 2d 2d 2d 2d 2d 2d 2d 0a | 23 20 20 31 30 30 30 39 |-------.|# 10009|
|000001f0| 20 2d 72 2d 2d 72 2d 2d | 72 2d 2d 20 73 65 6c 66 | -r--r--|r-- self|
|00000200| 2d 6d 6f 64 65 2e 65 6c | 0a 23 20 20 20 35 32 30 |-mode.el|.# 520|
|00000210| 30 20 2d 72 2d 2d 72 2d | 2d 72 2d 2d 20 73 65 6c |0 -r--r-|-r-- sel|
|00000220| 66 2e 65 6c 0a 23 20 20 | 20 20 34 30 39 20 2d 72 |f.el.# | 409 -r|
|00000230| 77 2d 72 2d 2d 72 2d 2d | 20 52 45 41 44 4d 45 0a |w-r--r--| README.|
|00000240| 23 0a 23 20 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |#.# ====|========|
|00000250| 3d 20 73 65 6c 66 2d 6d | 6f 64 65 2e 65 6c 20 3d |= self-m|ode.el =|
|00000260| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0a 69 66 |========|=====.if|
|00000270| 20 74 65 73 74 20 2d 66 | 20 27 73 65 6c 66 2d 6d | test -f| 'self-m|
|00000280| 6f 64 65 2e 65 6c 27 20 | 2d 61 20 58 22 24 31 22 |ode.el' |-a X"$1"|
|00000290| 20 21 3d 20 58 22 2d 63 | 22 3b 20 74 68 65 6e 0a | != X"-c|"; then.|
|000002a0| 09 65 63 68 6f 20 27 78 | 20 2d 20 73 6b 69 70 70 |.echo 'x| - skipp|
|000002b0| 69 6e 67 20 73 65 6c 66 | 2d 6d 6f 64 65 2e 65 6c |ing self|-mode.el|
|000002c0| 20 28 46 69 6c 65 20 61 | 6c 72 65 61 64 79 20 65 | (File a|lready e|
|000002d0| 78 69 73 74 73 29 27 0a | 65 6c 73 65 0a 65 63 68 |xists)'.|else.ech|
|000002e0| 6f 20 27 78 20 2d 20 65 | 78 74 72 61 63 74 69 6e |o 'x - e|xtractin|
|000002f0| 67 20 73 65 6c 66 2d 6d | 6f 64 65 2e 65 6c 20 28 |g self-m|ode.el (|
|00000300| 54 65 78 74 29 27 0a 73 | 65 64 20 27 73 2f 5e 58 |Text)'.s|ed 's/^X|
|00000310| 2f 2f 27 20 3c 3c 20 27 | 53 48 41 52 5f 45 4f 46 |//' << '|SHAR_EOF|
|00000320| 27 20 3e 20 27 73 65 6c | 66 2d 6d 6f 64 65 2e 65 |' > 'sel|f-mode.e|
|00000330| 6c 27 20 26 26 0a 3b 3b | 20 53 65 6c 66 20 6d 6f |l' &&.;;| Self mo|
|00000340| 64 65 20 65 64 69 74 69 | 6e 67 20 63 6f 6d 6d 61 |de editi|ng comma|
|00000350| 6e 64 73 20 66 6f 72 20 | 45 6d 61 63 73 2c 20 61 |nds for |Emacs, a|
|00000360| 20 66 69 72 73 74 20 63 | 75 74 2e 2e 2e 0a 3b 3b | first c|ut....;;|
|00000370| 20 4d 61 72 20 31 31 2c | 20 31 39 39 32 20 53 74 | Mar 11,| 1992 St|
|00000380| 75 61 72 74 20 57 69 6c | 6c 69 61 6d 73 2c 20 77 |uart Wil|liams, w|
|00000390| 69 6c 6c 69 61 6d 73 40 | 63 73 2e 77 61 73 68 69 |illiams@|cs.washi|
|000003a0| 6e 67 74 6f 6e 2e 65 64 | 75 0a 3b 3b 20 4c 65 74 |ngton.ed|u.;; Let|
|000003b0| 20 6d 65 20 6b 6e 6f 77 | 20 69 66 20 79 6f 75 20 | me know| if you |
|000003c0| 66 69 78 20 73 74 75 66 | 66 2e 0a 58 0a 3b 3b 20 |fix stuf|f..X.;; |
|000003d0| 45 78 74 65 6e 64 65 64 | 20 62 79 20 43 72 61 69 |Extended| by Crai|
|000003e0| 67 20 43 68 61 6d 62 65 | 72 73 2c 20 4a 61 6e 20 |g Chambe|rs, Jan |
|000003f0| 33 30 2c 20 31 39 39 33 | 2e 0a 3b 3b 20 20 20 49 |30, 1993|..;; I|
|00000400| 6e 64 65 6e 74 20 73 74 | 61 74 65 6d 65 6e 74 20 |ndent st|atement |
|00000410| 63 6f 6e 74 69 6e 75 61 | 74 69 6f 6e 20 6c 69 6e |continua|tion lin|
|00000420| 65 73 0a 3b 3b 20 20 20 | 49 6e 64 65 6e 74 20 63 |es.;; |Indent c|
|00000430| 6f 6d 6d 65 6e 74 73 20 | 61 6e 64 20 6d 75 6c 74 |omments |and mult|
|00000440| 69 2d 6c 69 6e 65 20 63 | 6f 6d 6d 65 6e 74 73 20 |i-line c|omments |
|00000450| 28 73 6f 72 74 20 6f 66 | 29 0a 58 0a 3b 3b 20 45 |(sort of|).X.;; E|
|00000460| 78 74 65 6e 64 65 64 20 | 62 79 20 55 72 73 20 48 |xtended |by Urs H|
|00000470| 6f 65 6c 7a 6c 65 2c 20 | 4d 61 72 63 68 20 32 31 |oelzle, |March 21|
|00000480| 2c 20 31 39 39 33 2e 0a | 3b 3b 20 20 20 41 64 64 |, 1993..|;; Add|
|00000490| 65 64 20 4c 75 63 69 64 | 20 65 6d 61 63 73 20 68 |ed Lucid| emacs h|
|000004a0| 69 67 68 6c 69 67 68 74 | 69 6e 67 20 28 74 68 61 |ighlight|ing (tha|
|000004b0| 6e 6b 73 20 74 6f 20 4c | 61 72 73 20 42 61 6b 29 |nks to L|ars Bak)|
|000004c0| 0a 58 0a 3b 3b 0a 3b 3b | 20 48 61 63 6b 65 64 20 |.X.;;.;;| Hacked |
|000004d0| 62 79 20 4d 69 63 68 61 | 65 6c 20 52 69 63 68 61 |by Micha|el Richa|
|000004e0| 72 64 73 6f 6e 20 3c 6d | 63 72 40 70 68 79 73 69 |rdson <m|cr@physi|
|000004f0| 63 73 2e 63 61 72 6c 65 | 74 6f 6e 2e 63 61 3e 20 |cs.carle|ton.ca> |
|00000500| 74 6f 20 69 6e 74 65 72 | 61 63 74 0a 3b 3b 20 77 |to inter|act.;; w|
|00000510| 69 74 68 20 73 65 6c 66 | 2e 65 6c 2c 20 61 6e 20 |ith self|.el, an |
|00000520| 69 6e 66 65 72 69 6f 72 | 20 73 65 6c 66 20 6d 6f |inferior| self mo|
|00000530| 64 65 2e 0a 3b 3b 20 20 | 2d 20 41 64 64 65 64 20 |de..;; |- Added |
|00000540| 4d 2d 43 2d 78 20 74 6f | 20 64 6f 20 73 65 6e 64 |M-C-x to| do send|
|00000550| 2d 73 65 6c 66 2d 6f 62 | 6a 65 63 74 2e 0a 3b 3b |-self-ob|ject..;;|
|00000560| 20 20 2d 20 41 64 64 65 | 64 20 62 65 67 69 6e 6e | - Adde|d beginn|
|00000570| 69 6e 67 2d 6f 66 2d 6f | 62 6a 65 63 74 2f 65 6e |ing-of-o|bject/en|
|00000580| 64 2d 6f 66 2d 6f 62 6a | 65 63 74 20 66 6f 72 20 |d-of-obj|ect for |
|00000590| 61 62 6f 76 65 2e 0a 3b | 3b 20 20 2d 20 41 6c 73 |above..;|; - Als|
|000005a0| 6f 20 61 64 64 65 64 20 | 62 61 63 6b 77 61 72 64 |o added |backward|
|000005b0| 2d 6f 62 6a 65 63 74 2f | 66 6f 72 77 61 72 64 2d |-object/|forward-|
|000005c0| 6f 62 6a 65 63 74 20 28 | 6e 6f 74 20 63 75 72 72 |object (|not curr|
|000005d0| 65 6e 74 6c 79 20 62 6f | 75 6e 64 0a 3b 3b 20 20 |ently bo|und.;; |
|000005e0| 20 20 74 6f 20 61 6e 79 | 20 73 70 65 63 69 66 69 | to any| specifi|
|000005f0| 63 20 6b 65 79 2e 20 49 | 20 74 65 6e 64 20 74 6f |c key. I| tend to|
|00000600| 20 62 69 6e 64 20 74 68 | 65 6d 20 74 6f 20 66 75 | bind th|em to fu|
|00000610| 6e 63 74 69 6f 6e 20 6b | 65 79 73 2e 2e 29 0a 3b |nction k|eys..).;|
|00000620| 3b 20 20 2d 20 53 74 75 | 66 66 20 69 74 20 69 6e |; - Stu|ff it in|
|00000630| 74 6f 20 52 43 53 2e 0a | 58 0a 3b 3b 20 54 6f 20 |to RCS..|X.;; To |
|00000640| 64 6f 3a 0a 3b 3b 20 2d | 20 50 61 72 73 69 6e 67 |do:.;; -| Parsing|
|00000650| 20 66 6f 72 20 69 6e 64 | 65 6e 74 61 74 69 6f 6e | for ind|entation|
|00000660| 20 69 73 20 63 75 72 72 | 65 6e 74 6c 79 20 64 6f | is curr|ently do|
|00000670| 6e 65 20 73 74 61 72 74 | 69 6e 67 20 61 74 20 74 |ne start|ing at t|
|00000680| 68 65 20 74 6f 70 20 6f | 66 20 74 68 65 0a 3b 3b |he top o|f the.;;|
|00000690| 20 20 20 77 68 6f 6c 65 | 20 66 69 6c 65 20 28 79 | whole| file (y|
|000006a0| 75 63 6b 29 21 20 20 49 | 74 20 73 68 6f 75 6c 64 |uck)! I|t should|
|000006b0| 20 73 74 61 72 74 20 70 | 61 72 73 69 6e 67 20 73 | start p|arsing s|
|000006c0| 6f 6d 65 77 68 65 72 65 | 20 63 6c 6f 73 65 72 2e |omewhere| closer.|
|000006d0| 0a 3b 3b 20 2d 20 49 6e | 64 65 6e 74 61 74 69 6f |.;; - In|dentatio|
|000006e0| 6e 20 69 73 20 61 62 73 | 6f 6c 75 74 65 20 66 72 |n is abs|olute fr|
|000006f0| 6f 6d 20 70 61 72 73 69 | 6e 67 20 74 68 65 20 77 |om parsi|ng the w|
|00000700| 68 6f 6c 65 20 66 69 6c | 65 20 61 6e 64 20 74 68 |hole fil|e and th|
|00000710| 65 20 6c 65 66 74 20 6d | 61 72 67 69 6e 2c 0a 3b |e left m|argin,.;|
|00000720| 3b 20 20 20 69 74 20 73 | 68 6f 75 6c 64 20 62 65 |; it s|hould be|
|00000730| 20 72 65 6c 61 74 69 76 | 65 20 74 6f 20 74 68 65 | relativ|e to the|
|00000740| 20 65 6e 63 6c 6f 73 69 | 6e 67 20 62 6c 6f 63 6b | enclosi|ng block|
|00000750| 20 6f 66 20 63 6f 64 65 | 2e 0a 3b 3b 20 2d 20 72 | of code|..;; - r|
|00000760| 69 67 68 74 20 62 72 61 | 63 6b 65 74 20 61 6e 64 |ight bra|cket and|
|00000770| 20 70 61 72 65 74 68 65 | 73 69 73 20 73 68 6f 75 | parethe|sis shou|
|00000780| 6c 64 20 6f 6e 6c 79 20 | 63 61 6c 6c 20 73 65 6c |ld only |call sel|
|00000790| 66 2d 69 6e 64 65 6e 74 | 20 69 66 20 74 68 65 79 |f-indent| if they|
|000007a0| 27 72 65 0a 3b 3b 20 20 | 20 61 74 20 74 68 65 20 |'re.;; | at the |
|000007b0| 62 65 67 69 6e 6e 69 6e | 67 20 6f 66 20 61 20 6c |beginnin|g of a l|
|000007c0| 69 6e 65 2c 20 6e 6f 74 | 20 61 74 20 74 68 65 20 |ine, not| at the |
|000007d0| 65 6e 64 2e 0a 3b 3b 20 | 2d 20 41 20 73 65 63 6f |end..;; |- A seco|
|000007e0| 6e 64 20 74 61 62 20 69 | 6e 20 61 20 72 6f 77 20 |nd tab i|n a row |
|000007f0| 63 6f 75 6c 64 20 62 65 | 20 73 6d 61 72 74 65 72 |could be| smarter|
|00000800| 20 61 6e 64 20 69 6e 73 | 65 72 74 20 61 20 74 61 | and ins|ert a ta|
|00000810| 62 0a 58 0a 3b 0a 3b 20 | 24 49 64 3a 20 73 65 6c |b.X.;.; |$Id: sel|
|00000820| 66 2d 6d 6f 64 65 2e 65 | 6c 2c 76 20 31 2e 31 20 |f-mode.e|l,v 1.1 |
|00000830| 31 39 39 33 2f 30 35 2f | 31 34 20 32 31 3a 31 31 |1993/05/|14 21:11|
|00000840| 3a 34 38 20 72 69 63 68 | 61 72 64 73 20 52 65 6c |:48 rich|ards Rel|
|00000850| 20 24 0a 3b 20 0a 3b 20 | 24 4c 6f 67 3a 20 73 65 | $.; .; |$Log: se|
|00000860| 6c 66 2d 6d 6f 64 65 2e | 65 6c 2c 76 20 24 0a 3b |lf-mode.|el,v $.;|
|00000870| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 31 20 20 31 | Revisio|n 1.1 1|
|00000880| 39 39 33 2f 30 35 2f 31 | 34 20 20 32 31 3a 31 31 |993/05/1|4 21:11|
|00000890| 3a 34 38 20 20 72 69 63 | 68 61 72 64 73 0a 3b 20 |:48 ric|hards.; |
|000008a0| 49 6e 69 74 69 61 6c 20 | 72 65 76 69 73 69 6f 6e |Initial |revision|
|000008b0| 0a 3b 0a 3b 0a 58 0a 28 | 70 72 6f 76 69 64 65 20 |.;.;.X.(|provide |
|000008c0| 27 73 65 6c 66 2d 6d 6f | 64 65 29 0a 58 0a 28 64 |'self-mo|de).X.(d|
|000008d0| 65 66 76 61 72 20 73 65 | 6c 66 2d 6d 6f 64 65 2d |efvar se|lf-mode-|
|000008e0| 61 62 62 72 65 76 2d 74 | 61 62 6c 65 20 6e 69 6c |abbrev-t|able nil|
|000008f0| 0a 58 20 20 22 41 62 62 | 72 65 76 20 74 61 62 6c |.X "Abb|rev tabl|
|00000900| 65 20 66 6f 72 20 75 73 | 65 20 69 6e 20 73 65 6c |e for us|e in sel|
|00000910| 66 2d 6d 6f 64 65 20 62 | 75 66 66 65 72 73 2e 22 |f-mode b|uffers."|
|00000920| 29 0a 28 64 65 66 69 6e | 65 2d 61 62 62 72 65 76 |).(defin|e-abbrev|
|00000930| 2d 74 61 62 6c 65 20 27 | 73 65 6c 66 2d 6d 6f 64 |-table '|self-mod|
|00000940| 65 2d 61 62 62 72 65 76 | 2d 74 61 62 6c 65 20 28 |e-abbrev|-table (|
|00000950| 29 29 0a 58 0a 28 64 65 | 66 76 61 72 20 73 65 6c |)).X.(de|fvar sel|
|00000960| 66 2d 6d 6f 64 65 2d 6d | 61 70 20 28 29 0a 58 20 |f-mode-m|ap ().X |
|00000970| 20 22 4b 65 79 6d 61 70 | 20 75 73 65 64 20 69 6e | "Keymap| used in|
|00000980| 20 53 65 6c 66 20 6d 6f | 64 65 2e 22 29 0a 58 0a | Self mo|de.").X.|
|00000990| 28 64 65 66 75 6e 20 73 | 65 6c 66 2d 6d 6f 64 65 |(defun s|elf-mode|
|000009a0| 2d 63 6f 6d 6d 61 6e 64 | 73 20 28 6d 61 70 29 20 |-command|s (map) |
|000009b0| 0a 58 20 20 22 41 64 64 | 73 20 74 68 65 20 73 65 |.X "Add|s the se|
|000009c0| 6c 66 20 63 6f 6d 6d 61 | 6e 64 73 20 74 6f 20 61 |lf comma|nds to a|
|000009d0| 20 6b 65 79 6d 61 70 2e | 22 0a 58 20 20 28 64 65 | keymap.|".X (de|
|000009e0| 66 69 6e 65 2d 6b 65 79 | 20 6d 61 70 20 22 5c 31 |fine-key| map "\1|
|000009f0| 37 37 22 20 27 62 61 63 | 6b 77 61 72 64 2d 64 65 |77" 'bac|kward-de|
|00000a00| 6c 65 74 65 2d 63 68 61 | 72 2d 75 6e 74 61 62 69 |lete-cha|r-untabi|
|00000a10| 66 79 29 0a 58 20 20 28 | 64 65 66 69 6e 65 2d 6b |fy).X (|define-k|
|00000a20| 65 79 20 6d 61 70 20 22 | 5c 74 22 20 27 73 65 6c |ey map "|\t" 'sel|
|00000a30| 66 2d 74 61 62 2d 69 6e | 64 65 6e 74 29 0a 58 20 |f-tab-in|dent).X |
|00000a40| 20 28 64 65 66 69 6e 65 | 2d 6b 65 79 20 6d 61 70 | (define|-key map|
|00000a50| 20 22 5c 43 2d 6a 22 20 | 27 6e 65 77 6c 69 6e 65 | "\C-j" |'newline|
|00000a60| 2d 61 6e 64 2d 69 6e 64 | 65 6e 74 29 0a 58 20 20 |-and-ind|ent).X |
|00000a70| 28 64 65 66 69 6e 65 2d | 6b 65 79 20 6d 61 70 20 |(define-|key map |
|00000a80| 22 5c 4d 2d 5c 43 2d 78 | 22 20 27 73 65 6c 66 2d |"\M-\C-x|" 'self-|
|00000a90| 73 65 6e 64 2d 6f 62 6a | 65 63 74 29 0a 58 20 20 |send-obj|ect).X |
|00000aa0| 3b 3b 20 75 6e 63 6f 6d | 6d 65 6e 74 20 74 68 65 |;; uncom|ment the|
|00000ab0| 20 6e 65 78 74 20 34 20 | 6c 69 6e 65 73 20 74 6f | next 4 |lines to|
|00000ac0| 20 74 75 72 6e 20 6f 66 | 66 20 61 75 74 6f 6d 61 | turn of|f automa|
|00000ad0| 74 69 63 20 69 6e 64 65 | 6e 74 61 74 69 6f 6e 0a |tic inde|ntation.|
|00000ae0| 58 20 20 28 64 65 66 69 | 6e 65 2d 6b 65 79 20 6d |X (defi|ne-key m|
|00000af0| 61 70 20 22 28 22 20 27 | 65 6c 65 63 74 72 69 63 |ap "(" '|electric|
|00000b00| 2d 73 65 6c 66 2d 62 72 | 61 63 65 29 0a 58 20 20 |-self-br|ace).X |
|00000b10| 28 64 65 66 69 6e 65 2d | 6b 65 79 20 6d 61 70 20 |(define-|key map |
|00000b20| 22 29 22 20 27 65 6c 65 | 63 74 72 69 63 2d 73 65 |")" 'ele|ctric-se|
|00000b30| 6c 66 2d 62 72 61 63 65 | 29 0a 58 20 20 28 64 65 |lf-brace|).X (de|
|00000b40| 66 69 6e 65 2d 6b 65 79 | 20 6d 61 70 20 22 5b 22 |fine-key| map "["|
|00000b50| 20 27 65 6c 65 63 74 72 | 69 63 2d 73 65 6c 66 2d | 'electr|ic-self-|
|00000b60| 62 72 61 63 65 29 0a 58 | 20 20 28 64 65 66 69 6e |brace).X| (defin|
|00000b70| 65 2d 6b 65 79 20 6d 61 | 70 20 22 5d 22 20 27 65 |e-key ma|p "]" 'e|
|00000b80| 6c 65 63 74 72 69 63 2d | 73 65 6c 66 2d 62 72 61 |lectric-|self-bra|
|00000b90| 63 65 29 29 0a 58 0a 28 | 69 66 20 73 65 6c 66 2d |ce)).X.(|if self-|
|00000ba0| 6d 6f 64 65 2d 6d 61 70 | 0a 58 20 20 20 20 28 29 |mode-map|.X ()|
|00000bb0| 0a 58 20 20 28 70 72 6f | 67 6e 0a 58 20 20 20 20 |.X (pro|gn.X |
|00000bc0| 28 73 65 74 71 20 73 65 | 6c 66 2d 6d 6f 64 65 2d |(setq se|lf-mode-|
|00000bd0| 6d 61 70 20 28 6d 61 6b | 65 2d 73 70 61 72 73 65 |map (mak|e-sparse|
|00000be0| 2d 6b 65 79 6d 61 70 29 | 29 0a 58 20 20 20 20 28 |-keymap)|).X (|
|00000bf0| 73 65 6c 66 2d 6d 6f 64 | 65 2d 63 6f 6d 6d 61 6e |self-mod|e-comman|
|00000c00| 64 73 20 73 65 6c 66 2d | 6d 6f 64 65 2d 6d 61 70 |ds self-|mode-map|
|00000c10| 29 29 29 0a 58 0a 28 64 | 65 66 76 61 72 20 73 65 |))).X.(d|efvar se|
|00000c20| 6c 66 2d 6d 6f 64 65 2d | 73 79 6e 74 61 78 2d 74 |lf-mode-|syntax-t|
|00000c30| 61 62 6c 65 20 6e 69 6c | 0a 58 20 20 22 53 79 6e |able nil|.X "Syn|
|00000c40| 74 61 78 20 74 61 62 6c | 65 20 69 6e 20 75 73 65 |tax tabl|e in use|
|00000c50| 20 69 6e 20 53 65 6c 66 | 2d 6d 6f 64 65 20 62 75 | in Self|-mode bu|
|00000c60| 66 66 65 72 73 2e 22 29 | 0a 58 0a 28 69 66 20 73 |ffers.")|.X.(if s|
|00000c70| 65 6c 66 2d 6d 6f 64 65 | 2d 73 79 6e 74 61 78 2d |elf-mode|-syntax-|
|00000c80| 74 61 62 6c 65 0a 58 20 | 20 20 20 28 29 0a 58 20 |table.X | ().X |
|00000c90| 20 28 73 65 74 71 20 73 | 65 6c 66 2d 6d 6f 64 65 | (setq s|elf-mode|
|00000ca0| 2d 73 79 6e 74 61 78 2d | 74 61 62 6c 65 20 28 6d |-syntax-|table (m|
|00000cb0| 61 6b 65 2d 73 79 6e 74 | 61 78 2d 74 61 62 6c 65 |ake-synt|ax-table|
|00000cc0| 29 29 0a 58 20 20 28 6d | 6f 64 69 66 79 2d 73 79 |)).X (m|odify-sy|
|00000cd0| 6e 74 61 78 2d 65 6e 74 | 72 79 20 3f 5c 28 20 22 |ntax-ent|ry ?\( "|
|00000ce0| 28 29 20 20 22 20 73 65 | 6c 66 2d 6d 6f 64 65 2d |() " se|lf-mode-|
|00000cf0| 73 79 6e 74 61 78 2d 74 | 61 62 6c 65 29 0a 58 20 |syntax-t|able).X |
|00000d00| 20 28 6d 6f 64 69 66 79 | 2d 73 79 6e 74 61 78 2d | (modify|-syntax-|
|00000d10| 65 6e 74 72 79 20 3f 5c | 29 20 22 29 28 20 20 22 |entry ?\|) ")( "|
|00000d20| 20 73 65 6c 66 2d 6d 6f | 64 65 2d 73 79 6e 74 61 | self-mo|de-synta|
|00000d30| 78 2d 74 61 62 6c 65 29 | 0a 58 20 20 28 6d 6f 64 |x-table)|.X (mod|
|00000d40| 69 66 79 2d 73 79 6e 74 | 61 78 2d 65 6e 74 72 79 |ify-synt|ax-entry|
|00000d50| 20 3f 5c 5b 20 22 28 5d | 20 20 22 20 73 65 6c 66 | ?\[ "(]| " self|
|00000d60| 2d 6d 6f 64 65 2d 73 79 | 6e 74 61 78 2d 74 61 62 |-mode-sy|ntax-tab|
|00000d70| 6c 65 29 0a 58 20 20 28 | 6d 6f 64 69 66 79 2d 73 |le).X (|modify-s|
|00000d80| 79 6e 74 61 78 2d 65 6e | 74 72 79 20 3f 5c 5d 20 |yntax-en|try ?\] |
|00000d90| 22 29 5b 20 20 22 20 73 | 65 6c 66 2d 6d 6f 64 65 |")[ " s|elf-mode|
|00000da0| 2d 73 79 6e 74 61 78 2d | 74 61 62 6c 65 29 0a 58 |-syntax-|table).X|
|00000db0| 20 20 28 6d 6f 64 69 66 | 79 2d 73 79 6e 74 61 78 | (modif|y-syntax|
|00000dc0| 2d 65 6e 74 72 79 20 3f | 5c 7c 20 22 24 7c 20 20 |-entry ?|\| "$| |
|00000dd0| 22 20 73 65 6c 66 2d 6d | 6f 64 65 2d 73 79 6e 74 |" self-m|ode-synt|
|00000de0| 61 78 2d 74 61 62 6c 65 | 29 0a 58 0a 58 20 20 3b |ax-table|).X.X ;|
|00000df0| 3b 20 74 72 65 61 74 20 | 64 6f 75 62 6c 65 20 71 |; treat |double q|
|00000e00| 75 6f 74 65 20 61 73 20 | 73 74 72 69 6e 67 2c 0a |uote as |string,.|
|00000e10| 58 20 20 3b 3b 20 73 69 | 6e 63 65 20 69 74 20 63 |X ;; si|nce it c|
|00000e20| 61 6e 27 74 20 62 65 20 | 62 6f 74 68 20 63 6f 6d |an't be |both com|
|00000e30| 6d 65 6e 74 20 73 74 61 | 72 74 20 61 6e 64 20 65 |ment sta|rt and e|
|00000e40| 6e 64 0a 58 20 20 28 6d | 6f 64 69 66 79 2d 73 79 |nd.X (m|odify-sy|
|00000e50| 6e 74 61 78 2d 65 6e 74 | 72 79 20 3f 5c 22 20 22 |ntax-ent|ry ?\" "|
|00000e60| 5c 22 20 20 20 22 20 73 | 65 6c 66 2d 6d 6f 64 65 |\" " s|elf-mode|
|00000e70| 2d 73 79 6e 74 61 78 2d | 74 61 62 6c 65 29 0a 58 |-syntax-|table).X|
|00000e80| 0a 58 20 20 3b 3b 20 61 | 70 6f 73 74 72 6f 70 68 |.X ;; a|postroph|
|00000e90| 65 20 69 73 20 75 73 65 | 64 20 66 6f 72 20 73 74 |e is use|d for st|
|00000ea0| 72 69 6e 67 73 0a 58 20 | 20 28 6d 6f 64 69 66 79 |rings.X | (modify|
|00000eb0| 2d 73 79 6e 74 61 78 2d | 65 6e 74 72 79 20 3f 5c |-syntax-|entry ?\|
|00000ec0| 27 20 22 5c 22 20 20 20 | 22 20 73 65 6c 66 2d 6d |' "\" |" self-m|
|00000ed0| 6f 64 65 2d 73 79 6e 74 | 61 78 2d 74 61 62 6c 65 |ode-synt|ax-table|
|00000ee0| 29 0a 58 0a 58 20 20 3b | 3b 20 73 70 61 63 65 2c |).X.X ;|; space,|
|00000ef0| 20 74 61 62 2c 20 6e 65 | 77 6c 69 6e 65 2c 20 61 | tab, ne|wline, a|
|00000f00| 6e 64 20 66 6f 72 6d 66 | 65 65 64 20 61 72 65 20 |nd formf|eed are |
|00000f10| 77 68 69 74 65 73 70 61 | 63 65 3a 0a 58 20 20 28 |whitespa|ce:.X (|
|00000f20| 6d 6f 64 69 66 79 2d 73 | 79 6e 74 61 78 2d 65 6e |modify-s|yntax-en|
|00000f30| 74 72 79 20 3f 20 20 20 | 22 20 20 20 20 22 20 73 |try ? |" " s|
|00000f40| 65 6c 66 2d 6d 6f 64 65 | 2d 73 79 6e 74 61 78 2d |elf-mode|-syntax-|
|00000f50| 74 61 62 6c 65 29 0a 58 | 20 20 28 6d 6f 64 69 66 |table).X| (modif|
|00000f60| 79 2d 73 79 6e 74 61 78 | 2d 65 6e 74 72 79 20 3f |y-syntax|-entry ?|
|00000f70| 5c 74 20 22 20 20 20 20 | 22 20 73 65 6c 66 2d 6d |\t " |" self-m|
|00000f80| 6f 64 65 2d 73 79 6e 74 | 61 78 2d 74 61 62 6c 65 |ode-synt|ax-table|
|00000f90| 29 0a 58 20 20 28 6d 6f | 64 69 66 79 2d 73 79 6e |).X (mo|dify-syn|
|00000fa0| 74 61 78 2d 65 6e 74 72 | 79 20 3f 5c 6e 20 22 20 |tax-entr|y ?\n " |
|00000fb0| 20 20 20 22 20 73 65 6c | 66 2d 6d 6f 64 65 2d 73 | " sel|f-mode-s|
|00000fc0| 79 6e 74 61 78 2d 74 61 | 62 6c 65 29 0a 58 20 20 |yntax-ta|ble).X |
|00000fd0| 28 6d 6f 64 69 66 79 2d | 73 79 6e 74 61 78 2d 65 |(modify-|syntax-e|
|00000fe0| 6e 74 72 79 20 3f 5c 66 | 20 22 20 20 20 20 22 20 |ntry ?\f| " " |
|00000ff0| 73 65 6c 66 2d 6d 6f 64 | 65 2d 73 79 6e 74 61 78 |self-mod|e-syntax|
|00001000| 2d 74 61 62 6c 65 29 0a | 58 0a 58 20 20 28 6d 6f |-table).|X.X (mo|
|00001010| 64 69 66 79 2d 73 79 6e | 74 61 78 2d 65 6e 74 72 |dify-syn|tax-entr|
|00001020| 79 20 3f 5c 5c 20 22 5c | 5c 20 20 22 20 73 65 6c |y ?\\ "\|\ " sel|
|00001030| 66 2d 6d 6f 64 65 2d 73 | 79 6e 74 61 78 2d 74 61 |f-mode-s|yntax-ta|
|00001040| 62 6c 65 29 0a 58 0a 58 | 20 20 28 6d 6f 64 69 66 |ble).X.X| (modif|
|00001050| 79 2d 73 79 6e 74 61 78 | 2d 65 6e 74 72 79 20 3f |y-syntax|-entry ?|
|00001060| 2b 20 22 2e 22 20 73 65 | 6c 66 2d 6d 6f 64 65 2d |+ "." se|lf-mode-|
|00001070| 73 79 6e 74 61 78 2d 74 | 61 62 6c 65 29 0a 58 20 |syntax-t|able).X |
|00001080| 20 28 6d 6f 64 69 66 79 | 2d 73 79 6e 74 61 78 2d | (modify|-syntax-|
|00001090| 65 6e 74 72 79 20 3f 2d | 20 22 2e 22 20 73 65 6c |entry ?-| "." sel|
|000010a0| 66 2d 6d 6f 64 65 2d 73 | 79 6e 74 61 78 2d 74 61 |f-mode-s|yntax-ta|
|000010b0| 62 6c 65 29 0a 58 20 20 | 28 6d 6f 64 69 66 79 2d |ble).X |(modify-|
|000010c0| 73 79 6e 74 61 78 2d 65 | 6e 74 72 79 20 3f 3d 20 |syntax-e|ntry ?= |
|000010d0| 22 2e 22 20 73 65 6c 66 | 2d 6d 6f 64 65 2d 73 79 |"." self|-mode-sy|
|000010e0| 6e 74 61 78 2d 74 61 62 | 6c 65 29 0a 58 20 20 28 |ntax-tab|le).X (|
|000010f0| 6d 6f 64 69 66 79 2d 73 | 79 6e 74 61 78 2d 65 6e |modify-s|yntax-en|
|00001100| 74 72 79 20 3f 25 20 22 | 2e 22 20 73 65 6c 66 2d |try ?% "|." self-|
|00001110| 6d 6f 64 65 2d 73 79 6e | 74 61 78 2d 74 61 62 6c |mode-syn|tax-tabl|
|00001120| 65 29 0a 58 20 20 28 6d | 6f 64 69 66 79 2d 73 79 |e).X (m|odify-sy|
|00001130| 6e 74 61 78 2d 65 6e 74 | 72 79 20 3f 3c 20 22 2e |ntax-ent|ry ?< ".|
|00001140| 22 20 73 65 6c 66 2d 6d | 6f 64 65 2d 73 79 6e 74 |" self-m|ode-synt|
|00001150| 61 78 2d 74 61 62 6c 65 | 29 0a 58 20 20 28 6d 6f |ax-table|).X (mo|
|00001160| 64 69 66 79 2d 73 79 6e | 74 61 78 2d 65 6e 74 72 |dify-syn|tax-entr|
|00001170| 79 20 3f 3e 20 22 2e 22 | 20 73 65 6c 66 2d 6d 6f |y ?> "."| self-mo|
|00001180| 64 65 2d 73 79 6e 74 61 | 78 2d 74 61 62 6c 65 29 |de-synta|x-table)|
|00001190| 0a 58 20 20 28 6d 6f 64 | 69 66 79 2d 73 79 6e 74 |.X (mod|ify-synt|
|000011a0| 61 78 2d 65 6e 74 72 79 | 20 3f 26 20 22 2e 22 20 |ax-entry| ?& "." |
|000011b0| 73 65 6c 66 2d 6d 6f 64 | 65 2d 73 79 6e 74 61 78 |self-mod|e-syntax|
|000011c0| 2d 74 61 62 6c 65 29 29 | 0a 58 0a 28 64 65 66 63 |-table))|.X.(defc|
|000011d0| 6f 6e 73 74 20 73 65 6c | 66 2d 69 6e 64 65 6e 74 |onst sel|f-indent|
|000011e0| 2d 6c 65 76 65 6c 20 34 | 0a 58 20 20 22 2a 49 6e |-level 4|.X "*In|
|000011f0| 64 65 6e 74 61 74 69 6f | 6e 20 6f 66 20 53 65 6c |dentatio|n of Sel|
|00001200| 66 20 73 74 61 74 65 6d | 65 6e 74 73 20 77 69 74 |f statem|ents wit|
|00001210| 68 20 72 65 73 70 65 63 | 74 20 74 6f 20 63 6f 6e |h respec|t to con|
|00001220| 74 61 69 6e 69 6e 67 20 | 62 6c 6f 63 6b 2e 22 29 |taining |block.")|
|00001230| 0a 58 0a 28 64 65 66 63 | 6f 6e 73 74 20 73 65 6c |.X.(defc|onst sel|
|00001240| 66 2d 63 6f 6e 74 69 6e | 75 61 74 69 6f 6e 2d 69 |f-contin|uation-i|
|00001250| 6e 64 65 6e 74 2d 6c 65 | 76 65 6c 20 34 0a 58 20 |ndent-le|vel 4.X |
|00001260| 20 22 2a 49 6e 64 65 6e | 74 61 74 69 6f 6e 20 6f | "*Inden|tation o|
|00001270| 66 20 53 65 6c 66 20 73 | 74 61 74 65 6d 65 6e 74 |f Self s|tatement|
|00001280| 20 63 6f 6e 74 69 6e 75 | 61 74 69 6f 6e 73 20 77 | continu|ations w|
|00001290| 69 74 68 20 72 65 73 70 | 65 63 74 20 74 6f 20 73 |ith resp|ect to s|
|000012a0| 74 61 74 65 6d 65 6e 74 | 20 73 74 61 72 74 2e 22 |tatement| start."|
|000012b0| 29 0a 58 0a 28 64 65 66 | 75 6e 20 73 65 6c 66 2d |).X.(def|un self-|
|000012c0| 6d 6f 64 65 20 28 29 0a | 58 20 20 22 4d 61 6a 6f |mode ().|X "Majo|
|000012d0| 72 20 6d 6f 64 65 20 66 | 6f 72 20 65 64 69 74 69 |r mode f|or editi|
|000012e0| 6e 67 20 53 65 6c 66 20 | 63 6f 64 65 2e 22 0a 58 |ng Self |code.".X|
|000012f0| 20 20 28 69 6e 74 65 72 | 61 63 74 69 76 65 29 0a | (inter|active).|
|00001300| 58 20 20 28 6b 69 6c 6c | 2d 61 6c 6c 2d 6c 6f 63 |X (kill|-all-loc|
|00001310| 61 6c 2d 76 61 72 69 61 | 62 6c 65 73 29 0a 58 20 |al-varia|bles).X |
|00001320| 20 28 75 73 65 2d 6c 6f | 63 61 6c 2d 6d 61 70 20 | (use-lo|cal-map |
|00001330| 73 65 6c 66 2d 6d 6f 64 | 65 2d 6d 61 70 29 0a 58 |self-mod|e-map).X|
|00001340| 20 20 28 73 65 74 71 20 | 6d 61 6a 6f 72 2d 6d 6f | (setq |major-mo|
|00001350| 64 65 20 27 73 65 6c 66 | 2d 6d 6f 64 65 29 0a 58 |de 'self|-mode).X|
|00001360| 20 20 28 73 65 74 71 20 | 6d 6f 64 65 2d 6e 61 6d | (setq |mode-nam|
|00001370| 65 20 22 53 65 6c 66 22 | 29 0a 58 20 20 28 73 65 |e "Self"|).X (se|
|00001380| 6c 66 2d 6d 6f 64 65 2d | 76 61 72 69 61 62 6c 65 |lf-mode-|variable|
|00001390| 73 29 0a 58 20 20 28 72 | 75 6e 2d 68 6f 6f 6b 73 |s).X (r|un-hooks|
|000013a0| 20 27 73 65 6c 66 2d 6d | 6f 64 65 2d 68 6f 6f 6b | 'self-m|ode-hook|
|000013b0| 29 29 0a 58 0a 28 64 65 | 66 75 6e 20 73 65 6c 66 |)).X.(de|fun self|
|000013c0| 2d 6d 6f 64 65 2d 76 61 | 72 69 61 62 6c 65 73 20 |-mode-va|riables |
|000013d0| 28 29 0a 58 20 20 28 73 | 65 74 71 20 6c 6f 63 61 |().X (s|etq loca|
|000013e0| 6c 2d 61 62 62 72 65 76 | 2d 74 61 62 6c 65 20 73 |l-abbrev|-table s|
|000013f0| 65 6c 66 2d 6d 6f 64 65 | 2d 61 62 62 72 65 76 2d |elf-mode|-abbrev-|
|00001400| 74 61 62 6c 65 29 0a 58 | 20 20 28 73 65 74 2d 73 |table).X| (set-s|
|00001410| 79 6e 74 61 78 2d 74 61 | 62 6c 65 20 73 65 6c 66 |yntax-ta|ble self|
|00001420| 2d 6d 6f 64 65 2d 73 79 | 6e 74 61 78 2d 74 61 62 |-mode-sy|ntax-tab|
|00001430| 6c 65 29 0a 58 20 20 28 | 6d 61 6b 65 2d 6c 6f 63 |le).X (|make-loc|
|00001440| 61 6c 2d 76 61 72 69 61 | 62 6c 65 20 27 70 61 72 |al-varia|ble 'par|
|00001450| 61 67 72 61 70 68 2d 73 | 74 61 72 74 29 0a 58 20 |agraph-s|tart).X |
|00001460| 20 28 73 65 74 71 20 70 | 61 72 61 67 72 61 70 68 | (setq p|aragraph|
|00001470| 2d 73 74 61 72 74 20 28 | 63 6f 6e 63 61 74 20 22 |-start (|concat "|
|00001480| 5e 24 5c 5c 7c 22 20 70 | 61 67 65 2d 64 65 6c 69 |^$\\|" p|age-deli|
|00001490| 6d 69 74 65 72 29 29 0a | 58 20 20 28 6d 61 6b 65 |miter)).|X (make|
|000014a0| 2d 6c 6f 63 61 6c 2d 76 | 61 72 69 61 62 6c 65 20 |-local-v|ariable |
|000014b0| 27 70 61 72 61 67 72 61 | 70 68 2d 73 65 70 61 72 |'paragra|ph-separ|
|000014c0| 61 74 65 29 0a 58 20 20 | 28 73 65 74 71 20 70 61 |ate).X |(setq pa|
|000014d0| 72 61 67 72 61 70 68 2d | 73 65 70 61 72 61 74 65 |ragraph-|separate|
|000014e0| 20 70 61 72 61 67 72 61 | 70 68 2d 73 74 61 72 74 | paragra|ph-start|
|000014f0| 29 0a 58 20 20 28 6d 61 | 6b 65 2d 6c 6f 63 61 6c |).X (ma|ke-local|
|00001500| 2d 76 61 72 69 61 62 6c | 65 20 27 70 61 72 61 67 |-variabl|e 'parag|
|00001510| 72 61 70 68 2d 69 67 6e | 6f 72 65 2d 66 69 6c 6c |raph-ign|ore-fill|
|00001520| 2d 70 72 65 66 69 78 29 | 0a 58 20 20 28 73 65 74 |-prefix)|.X (set|
|00001530| 71 20 70 61 72 61 67 72 | 61 70 68 2d 69 67 6e 6f |q paragr|aph-igno|
|00001540| 72 65 2d 66 69 6c 6c 2d | 70 72 65 66 69 78 20 74 |re-fill-|prefix t|
|00001550| 29 0a 58 20 20 28 6d 61 | 6b 65 2d 6c 6f 63 61 6c |).X (ma|ke-local|
|00001560| 2d 76 61 72 69 61 62 6c | 65 20 27 69 6e 64 65 6e |-variabl|e 'inden|
|00001570| 74 2d 6c 69 6e 65 2d 66 | 75 6e 63 74 69 6f 6e 29 |t-line-f|unction)|
|00001580| 0a 58 20 20 28 73 65 74 | 71 20 69 6e 64 65 6e 74 |.X (set|q indent|
|00001590| 2d 6c 69 6e 65 2d 66 75 | 6e 63 74 69 6f 6e 20 27 |-line-fu|nction '|
|000015a0| 73 65 6c 66 2d 74 61 62 | 2d 69 6e 64 65 6e 74 29 |self-tab|-indent)|
|000015b0| 0a 58 20 20 28 6d 61 6b | 65 2d 6c 6f 63 61 6c 2d |.X (mak|e-local-|
|000015c0| 76 61 72 69 61 62 6c 65 | 20 27 72 65 71 75 69 72 |variable| 'requir|
|000015d0| 65 2d 66 69 6e 61 6c 2d | 6e 65 77 6c 69 6e 65 29 |e-final-|newline)|
|000015e0| 0a 58 20 20 28 73 65 74 | 71 20 72 65 71 75 69 72 |.X (set|q requir|
|000015f0| 65 2d 66 69 6e 61 6c 2d | 6e 65 77 6c 69 6e 65 20 |e-final-|newline |
|00001600| 74 29 29 0a 58 0a 58 0a | 28 64 65 66 75 6e 20 73 |t)).X.X.|(defun s|
|00001610| 65 6c 66 2d 74 61 62 2d | 69 6e 64 65 6e 74 20 28 |elf-tab-|indent (|
|00001620| 29 0a 58 20 20 22 49 6e | 64 65 6e 74 20 63 75 72 |).X "In|dent cur|
|00001630| 72 65 6e 74 20 6c 69 6e | 65 20 61 73 20 53 65 6c |rent lin|e as Sel|
|00001640| 66 20 63 6f 64 65 2c 20 | 65 76 65 6e 20 69 66 20 |f code, |even if |
|00001650| 61 6e 20 65 6d 70 74 79 | 20 6c 69 6e 65 2e 22 0a |an empty| line.".|
|00001660| 58 20 20 28 69 6e 74 65 | 72 61 63 74 69 76 65 29 |X (inte|ractive)|
|00001670| 0a 58 20 20 28 6c 65 74 | 20 28 28 69 6e 64 65 6e |.X (let| ((inden|
|00001680| 74 2d 63 6f 6c 75 6d 6e | 20 28 73 65 6c 66 2d 69 |t-column| (self-i|
|00001690| 6e 64 65 6e 74 2d 6c 69 | 6e 65 29 29 29 20 3b 20 |ndent-li|ne))) ; |
|000016a0| 68 6f 77 20 66 61 72 20 | 73 68 6f 75 6c 64 20 77 |how far |should w|
|000016b0| 65 20 69 6e 64 65 6e 74 | 0a 58 20 20 20 20 28 69 |e indent|.X (i|
|000016c0| 66 20 28 61 6e 64 20 28 | 6e 75 6d 62 65 72 70 20 |f (and (|numberp |
|000016d0| 69 6e 64 65 6e 74 2d 63 | 6f 6c 75 6d 6e 29 0a 58 |indent-c|olumn).X|
|000016e0| 09 20 20 20 20 20 28 3c | 20 28 63 75 72 72 65 6e |. (<| (curren|
|000016f0| 74 2d 63 6f 6c 75 6d 6e | 29 20 69 6e 64 65 6e 74 |t-column|) indent|
|00001700| 2d 63 6f 6c 75 6d 6e 29 | 29 20 3b 20 6d 6f 76 65 |-column)|) ; move|
|00001710| 20 63 75 72 73 6f 72 20 | 74 6f 20 72 69 67 68 74 | cursor |to right|
|00001720| 20 6f 6e 6c 79 0a 58 09 | 28 6d 6f 76 65 2d 74 6f | only.X.|(move-to|
|00001730| 2d 63 6f 6c 75 6d 6e 20 | 69 6e 64 65 6e 74 2d 63 |-column |indent-c|
|00001740| 6f 6c 75 6d 6e 29 29 29 | 29 0a 58 0a 28 64 65 66 |olumn)))|).X.(def|
|00001750| 75 6e 20 73 65 6c 66 2d | 69 6e 64 65 6e 74 2d 6c |un self-|indent-l|
|00001760| 69 6e 65 20 28 29 0a 58 | 20 20 22 49 6e 64 65 6e |ine ().X| "Inden|
|00001770| 74 20 63 75 72 72 65 6e | 74 20 6c 69 6e 65 20 61 |t curren|t line a|
|00001780| 73 20 53 65 6c 66 20 63 | 6f 64 65 2e 22 0a 58 20 |s Self c|ode.".X |
|00001790| 20 28 69 6e 74 65 72 61 | 63 74 69 76 65 29 0a 58 | (intera|ctive).X|
|000017a0| 20 20 28 6c 65 74 20 28 | 28 69 6e 64 65 6e 74 2d | (let (|(indent-|
|000017b0| 73 69 7a 65 20 28 63 61 | 6c 63 75 6c 61 74 65 2d |size (ca|lculate-|
|000017c0| 73 65 6c 66 2d 69 6e 64 | 65 6e 74 29 29 29 0a 58 |self-ind|ent))).X|
|000017d0| 20 20 20 20 28 69 66 20 | 28 6e 75 6d 62 65 72 70 | (if |(numberp|
|000017e0| 20 69 6e 64 65 6e 74 2d | 73 69 7a 65 29 09 09 3b | indent-|size)..;|
|000017f0| 20 65 6c 73 65 20 64 6f | 6e 27 74 20 69 6e 64 65 | else do|n't inde|
|00001800| 6e 74 0a 58 09 28 73 61 | 76 65 2d 65 78 63 75 72 |nt.X.(sa|ve-excur|
|00001810| 73 69 6f 6e 0a 58 09 20 | 20 28 62 65 67 69 6e 6e |sion.X. | (beginn|
|00001820| 69 6e 67 2d 6f 66 2d 6c | 69 6e 65 29 0a 58 09 20 |ing-of-l|ine).X. |
|00001830| 20 28 73 6b 69 70 2d 63 | 68 61 72 73 2d 66 6f 72 | (skip-c|hars-for|
|00001840| 77 61 72 64 20 22 20 5c | 74 22 29 0a 58 09 20 20 |ward " \|t").X. |
|00001850| 28 69 66 20 28 2f 3d 20 | 28 63 75 72 72 65 6e 74 |(if (/= |(current|
|00001860| 2d 63 6f 6c 75 6d 6e 29 | 20 69 6e 64 65 6e 74 2d |-column)| indent-|
|00001870| 73 69 7a 65 29 0a 58 09 | 20 20 20 20 20 20 28 70 |size).X.| (p|
|00001880| 72 6f 67 6e 09 09 3b 20 | 64 6f 6e 27 74 20 63 68 |rogn..; |don't ch|
|00001890| 61 6e 67 65 20 75 6e 6c | 65 73 73 20 77 65 20 68 |ange unl|ess we h|
|000018a0| 61 76 65 20 74 6f 0a 58 | 09 09 28 64 65 6c 65 74 |ave to.X|..(delet|
|000018b0| 65 2d 68 6f 72 69 7a 6f | 6e 74 61 6c 2d 73 70 61 |e-horizo|ntal-spa|
|000018c0| 63 65 29 0a 58 09 09 28 | 69 6e 64 65 6e 74 2d 74 |ce).X..(|indent-t|
|000018d0| 6f 2d 63 6f 6c 75 6d 6e | 20 69 6e 64 65 6e 74 2d |o-column| indent-|
|000018e0| 73 69 7a 65 29 29 29 29 | 29 0a 58 20 20 20 20 69 |size))))|).X i|
|000018f0| 6e 64 65 6e 74 2d 73 69 | 7a 65 29 29 0a 58 0a 28 |ndent-si|ze)).X.(|
|00001900| 64 65 66 75 6e 20 73 65 | 6c 66 2d 69 6e 64 65 6e |defun se|lf-inden|
|00001910| 74 2d 72 65 67 69 6f 6e | 20 28 73 74 61 72 74 20 |t-region| (start |
|00001920| 65 6e 64 29 0a 58 20 20 | 22 49 6e 64 65 6e 74 20 |end).X |"Indent |
|00001930| 74 68 65 20 63 75 72 72 | 65 6e 74 20 72 65 67 69 |the curr|ent regi|
|00001940| 6f 6e 20 61 73 20 53 65 | 6c 66 20 63 6f 64 65 2e |on as Se|lf code.|
|00001950| 22 0a 58 20 20 28 69 6e | 74 65 72 61 63 74 69 76 |".X (in|teractiv|
|00001960| 65 20 22 72 22 29 0a 58 | 20 20 28 73 61 76 65 2d |e "r").X| (save-|
|00001970| 65 78 63 75 72 73 69 6f | 6e 0a 58 20 20 20 20 28 |excursio|n.X (|
|00001980| 6c 65 74 20 28 28 65 6e | 64 2d 6d 61 72 6b 65 72 |let ((en|d-marker|
|00001990| 20 28 63 6f 70 79 2d 6d | 61 72 6b 65 72 20 65 6e | (copy-m|arker en|
|000019a0| 64 29 29 29 0a 58 20 20 | 20 20 20 20 28 67 6f 74 |d))).X | (got|
|000019b0| 6f 2d 63 68 61 72 20 73 | 74 61 72 74 29 0a 58 20 |o-char s|tart).X |
|000019c0| 20 20 20 20 20 28 77 68 | 69 6c 65 20 28 3c 20 28 | (wh|ile (< (|
|000019d0| 70 6f 69 6e 74 29 20 28 | 6d 61 72 6b 65 72 2d 70 |point) (|marker-p|
|000019e0| 6f 73 69 74 69 6f 6e 20 | 65 6e 64 2d 6d 61 72 6b |osition |end-mark|
|000019f0| 65 72 29 29 0a 58 09 28 | 66 6f 72 77 61 72 64 2d |er)).X.(|forward-|
|00001a00| 6c 69 6e 65 29 0a 58 09 | 28 73 65 6c 66 2d 69 6e |line).X.|(self-in|
|00001a10| 64 65 6e 74 2d 6c 69 6e | 65 29 29 29 29 29 0a 58 |dent-lin|e))))).X|
|00001a20| 0a 28 64 65 66 75 6e 20 | 73 65 6c 66 2d 69 6e 64 |.(defun |self-ind|
|00001a30| 65 6e 74 2d 62 75 66 66 | 65 72 20 28 29 0a 58 20 |ent-buff|er ().X |
|00001a40| 20 22 49 6e 64 65 6e 74 | 20 74 68 65 20 63 75 72 | "Indent| the cur|
|00001a50| 72 65 6e 74 20 62 75 66 | 66 65 72 20 61 73 20 53 |rent buf|fer as S|
|00001a60| 65 6c 66 20 63 6f 64 65 | 2e 22 0a 58 20 20 28 69 |elf code|.".X (i|
|00001a70| 6e 74 65 72 61 63 74 69 | 76 65 29 0a 58 20 20 28 |nteracti|ve).X (|
|00001a80| 73 61 76 65 2d 65 78 63 | 75 72 73 69 6f 6e 0a 58 |save-exc|ursion.X|
|00001a90| 20 20 20 20 28 73 65 6c | 66 2d 69 6e 64 65 6e 74 | (sel|f-indent|
|00001aa0| 2d 72 65 67 69 6f 6e 20 | 28 70 6f 69 6e 74 2d 6d |-region |(point-m|
|00001ab0| 69 6e 29 20 28 70 6f 69 | 6e 74 2d 6d 61 78 29 29 |in) (poi|nt-max))|
|00001ac0| 29 29 0a 58 0a 28 64 65 | 66 75 6e 20 63 61 6c 63 |)).X.(de|fun calc|
|00001ad0| 75 6c 61 74 65 2d 73 65 | 6c 66 2d 69 6e 64 65 6e |ulate-se|lf-inden|
|00001ae0| 74 20 28 29 0a 58 20 20 | 22 43 61 6c 63 75 6c 61 |t ().X |"Calcula|
|00001af0| 74 65 20 63 6f 72 72 65 | 63 74 20 69 6e 64 65 6e |te corre|ct inden|
|00001b00| 74 61 74 69 6f 6e 20 66 | 6f 72 20 61 20 6c 69 6e |tation f|or a lin|
|00001b10| 65 20 6f 66 20 53 65 6c | 66 20 63 6f 64 65 2e 0a |e of Sel|f code..|
|00001b20| 52 65 74 75 72 6e 73 20 | 61 6e 20 69 6e 74 65 67 |Returns |an integ|
|00001b30| 65 72 20 6f 72 20 6e 69 | 6c 20 69 66 20 69 6e 73 |er or ni|l if ins|
|00001b40| 69 64 65 20 61 20 73 74 | 72 69 6e 67 2e 22 0a 58 |ide a st|ring.".X|
|00001b50| 20 20 28 73 61 76 65 2d | 65 78 63 75 72 73 69 6f | (save-|excursio|
|00001b60| 6e 0a 58 20 20 20 20 28 | 62 65 67 69 6e 6e 69 6e |n.X (|beginnin|
|00001b70| 67 2d 6f 66 2d 6c 69 6e | 65 29 0a 58 20 20 20 20 |g-of-lin|e).X |
|00001b80| 28 73 6b 69 70 2d 63 68 | 61 72 73 2d 66 6f 72 77 |(skip-ch|ars-forw|
|00001b90| 61 72 64 20 22 20 5c 74 | 22 29 0a 58 20 20 20 20 |ard " \t|").X |
|00001ba0| 28 6c 65 74 20 28 73 74 | 61 74 65 20 70 61 72 65 |(let (st|ate pare|
|00001bb0| 6e 2d 64 65 70 74 68 20 | 63 6f 6e 74 61 69 6e 69 |n-depth |containi|
|00001bc0| 6e 67 2d 73 65 78 70 20 | 69 6e 2d 63 6f 6d 6d 65 |ng-sexp |in-comme|
|00001bd0| 6e 74 20 69 6e 2d 73 74 | 72 69 6e 67 29 0a 58 20 |nt in-st|ring).X |
|00001be0| 20 20 20 20 20 28 73 65 | 74 71 20 73 74 61 74 65 | (se|tq state|
|00001bf0| 20 28 70 61 72 73 65 2d | 70 61 72 74 69 61 6c 2d | (parse-|partial-|
|00001c00| 73 65 78 70 20 31 20 28 | 70 6f 69 6e 74 29 29 29 |sexp 1 (|point)))|
|00001c10| 20 3b 3b 20 74 68 69 73 | 20 73 68 6f 75 6c 64 20 | ;; this| should |
|00001c20| 2a 6e 6f 74 2a 20 62 65 | 20 31 0a 58 0a 58 20 20 |*not* be| 1.X.X |
|00001c30| 20 20 20 20 28 73 65 74 | 71 20 70 61 72 65 6e 2d | (set|q paren-|
|00001c40| 64 65 70 74 68 20 28 6e | 74 68 20 30 20 73 74 61 |depth (n|th 0 sta|
|00001c50| 74 65 29 29 0a 58 20 20 | 20 20 20 20 28 73 65 74 |te)).X | (set|
|00001c60| 71 20 63 6f 6e 74 61 69 | 6e 69 6e 67 2d 73 65 78 |q contai|ning-sex|
|00001c70| 70 20 28 6e 74 68 20 31 | 20 73 74 61 74 65 29 29 |p (nth 1| state))|
|00001c80| 0a 58 20 20 20 20 20 20 | 28 73 65 74 71 20 69 6e |.X |(setq in|
|00001c90| 2d 63 6f 6d 6d 65 6e 74 | 20 28 6e 74 68 20 33 20 |-comment| (nth 3 |
|00001ca0| 73 74 61 74 65 29 29 09 | 3b 3b 20 64 6f 63 75 6d |state)).|;; docum|
|00001cb0| 65 6e 74 61 74 69 6f 6e | 20 68 61 73 20 74 68 65 |entation| has the|
|00001cc0| 73 65 20 74 77 6f 20 62 | 61 63 6b 77 61 72 64 73 |se two b|ackwards|
|00001cd0| 0a 58 20 20 20 20 20 20 | 28 73 65 74 71 20 69 6e |.X |(setq in|
|00001ce0| 2d 73 74 72 69 6e 67 20 | 28 6e 74 68 20 34 20 73 |-string |(nth 4 s|
|00001cf0| 74 61 74 65 29 29 0a 58 | 0a 58 20 20 20 20 20 20 |tate)).X|.X |
|00001d00| 28 63 6f 6e 64 0a 58 20 | 20 20 20 20 20 20 28 69 |(cond.X | (i|
|00001d10| 6e 2d 73 74 72 69 6e 67 | 0a 58 20 20 20 20 20 20 |n-string|.X |
|00001d20| 20 3b 3b 20 49 66 20 69 | 6e 73 69 64 65 20 73 74 | ;; If i|nside st|
|00001d30| 72 69 6e 67 20 72 65 74 | 75 72 6e 20 6e 69 6c 20 |ring ret|urn nil |
|00001d40| 28 64 6f 6e 27 74 20 69 | 6e 64 65 6e 74 29 3b 0a |(don't i|ndent);.|
|00001d50| 58 09 6e 69 6c 29 0a 58 | 0a 58 20 20 20 20 20 20 |X.nil).X|.X |
|00001d60| 20 28 69 6e 2d 63 6f 6d | 6d 65 6e 74 0a 58 09 3b | (in-com|ment.X.;|
|00001d70| 3b 20 49 66 20 69 6e 73 | 69 64 65 20 63 6f 6d 6d |; If ins|ide comm|
|00001d80| 65 6e 74 20 69 6e 64 65 | 6e 74 20 65 71 75 61 6c |ent inde|nt equal|
|00001d90| 20 74 6f 20 65 6e 63 6c | 6f 73 69 6e 67 20 73 74 | to encl|osing st|
|00001da0| 61 74 65 6d 65 6e 74 2c | 20 70 6c 75 73 20 31 20 |atement,| plus 1 |
|00001db0| 74 6f 0a 58 09 3b 3b 20 | 73 6b 69 70 20 74 68 65 |to.X.;; |skip the|
|00001dc0| 20 65 6e 63 6c 6f 73 69 | 6e 67 20 71 75 6f 74 65 | enclosi|ng quote|
|00001dd0| 20 63 68 61 72 0a 58 09 | 3b 3b 20 28 72 65 61 6c | char.X.|;; (real|
|00001de0| 6c 79 20 73 68 6f 75 6c | 64 20 69 6e 64 65 6e 74 |ly shoul|d indent|
|00001df0| 20 65 71 75 61 6c 20 74 | 6f 20 74 68 65 20 66 69 | equal t|o the fi|
|00001e00| 72 73 74 20 63 68 61 72 | 20 61 66 74 65 72 20 74 |rst char| after t|
|00001e10| 68 65 20 71 75 6f 74 65 | 2c 0a 58 09 3b 3b 20 20 |he quote|,.X.;; |
|00001e20| 74 6f 20 6c 69 6e 65 20 | 75 70 20 74 65 78 74 20 |to line |up text |
|00001e30| 6e 69 63 65 6c 79 29 0a | 58 09 28 31 2b 20 28 2a |nicely).|X.(1+ (*|
|00001e40| 20 73 65 6c 66 2d 69 6e | 64 65 6e 74 2d 6c 65 76 | self-in|dent-lev|
|00001e50| 65 6c 20 70 61 72 65 6e | 2d 64 65 70 74 68 29 29 |el paren|-depth))|
|00001e60| 29 0a 58 0a 58 20 20 20 | 20 20 20 20 28 28 6e 75 |).X.X | ((nu|
|00001e70| 6c 6c 20 63 6f 6e 74 61 | 69 6e 69 6e 67 2d 73 65 |ll conta|ining-se|
|00001e80| 78 70 29 0a 58 09 3b 3b | 20 4c 69 6e 65 20 69 73 |xp).X.;;| Line is|
|00001e90| 20 61 74 20 74 6f 70 20 | 6c 65 76 65 6c 2e 0a 58 | at top |level..X|
|00001ea0| 09 3b 3b 20 42 65 63 61 | 75 73 65 20 6f 66 20 70 |.;; Beca|use of p|
|00001eb0| 61 72 65 6e 2d 63 6f 75 | 6e 74 69 6e 67 20 61 74 |aren-cou|nting at|
|00001ec0| 20 74 6f 70 2d 6c 65 76 | 65 6c 2c 20 6e 65 76 65 | top-lev|el, neve|
|00001ed0| 72 20 68 61 76 65 20 61 | 20 63 6f 6e 74 69 6e 75 |r have a| continu|
|00001ee0| 61 74 69 6f 6e 0a 58 09 | 3b 3b 20 6c 69 6e 65 20 |ation.X.|;; line |
|00001ef0| 61 74 20 74 68 65 20 74 | 6f 70 2d 6c 65 76 65 6c |at the t|op-level|
|00001f00| 2e 0a 58 09 3b 3b 20 4e | 6f 20 69 6e 64 65 6e 74 |..X.;; N|o indent|
|00001f10| 61 74 69 6f 6e 20 61 74 | 20 74 6f 70 2d 6c 65 76 |ation at| top-lev|
|00001f20| 65 6c 2e 0a 58 09 30 29 | 0a 58 20 20 20 20 20 20 |el..X.0)|.X |
|00001f30| 20 0a 58 20 20 20 20 20 | 20 20 28 28 6f 72 0a 58 | .X | ((or.X|
|00001f40| 09 20 28 6c 6f 6f 6b 69 | 6e 67 2d 61 74 20 22 29 |. (looki|ng-at ")|
|00001f50| 22 29 0a 58 09 20 28 6c | 6f 6f 6b 69 6e 67 2d 61 |").X. (l|ooking-a|
|00001f60| 74 20 22 5d 22 29 0a 58 | 09 20 28 6c 6f 6f 6b 69 |t "]").X|. (looki|
|00001f70| 6e 67 2d 61 74 20 22 7c | 5b 20 5c 74 5d 2a 29 22 |ng-at "||[ \t]*)"|
|00001f80| 29 0a 58 09 20 28 6c 6f | 6f 6b 69 6e 67 2d 61 74 |).X. (lo|oking-at|
|00001f90| 20 22 7c 5b 20 5c 74 5d | 2a 5d 22 29 29 0a 58 09 | "|[ \t]|*]")).X.|
|00001fa0| 3b 3b 20 6c 69 6e 65 20 | 73 74 61 72 74 73 20 61 |;; line |starts a|
|00001fb0| 20 73 74 61 74 65 6d 65 | 6e 74 2c 20 61 6e 64 20 | stateme|nt, and |
|00001fc0| 73 68 6f 75 6c 64 20 62 | 61 63 6b 20 75 70 20 69 |should b|ack up i|
|00001fd0| 6e 64 65 6e 74 61 74 69 | 6f 6e 2c 20 74 6f 6f 0a |ndentati|on, too.|
|00001fe0| 58 09 28 2a 20 73 65 6c | 66 2d 69 6e 64 65 6e 74 |X.(* sel|f-indent|
|00001ff0| 2d 6c 65 76 65 6c 20 28 | 31 2d 20 70 61 72 65 6e |-level (|1- paren|
|00002000| 2d 64 65 70 74 68 29 29 | 29 0a 58 09 0a 58 20 20 |-depth))|).X..X |
|00002010| 20 20 20 20 20 28 74 0a | 58 09 3b 3b 20 61 20 6e | (t.|X.;; a n|
|00002020| 65 73 74 65 64 20 6c 69 | 6e 65 3b 20 63 68 65 63 |ested li|ne; chec|
|00002030| 6b 20 77 68 65 74 68 65 | 72 20 69 74 20 73 74 61 |k whethe|r it sta|
|00002040| 72 74 73 20 61 20 73 74 | 61 74 65 6d 65 6e 74 20 |rts a st|atement |
|00002050| 6f 72 20 63 6f 6e 74 69 | 6e 75 65 73 20 6f 6e 65 |or conti|nues one|
|00002060| 0a 58 09 28 63 6f 6e 64 | 20 28 28 73 65 6c 66 2d |.X.(cond| ((self-|
|00002070| 73 74 61 72 74 73 2d 73 | 74 61 74 65 6d 65 6e 74 |starts-s|tatement|
|00002080| 20 63 6f 6e 74 61 69 6e | 69 6e 67 2d 73 65 78 70 | contain|ing-sexp|
|00002090| 29 0a 58 09 20 20 20 20 | 20 20 20 3b 3b 20 73 74 |).X. | ;; st|
|000020a0| 61 72 74 73 20 73 74 61 | 74 65 6d 65 6e 74 0a 58 |arts sta|tement.X|
|000020b0| 09 20 20 20 20 20 20 20 | 28 2a 20 73 65 6c 66 2d |. |(* self-|
|000020c0| 69 6e 64 65 6e 74 2d 6c | 65 76 65 6c 20 70 61 72 |indent-l|evel par|
|000020d0| 65 6e 2d 64 65 70 74 68 | 29 29 0a 58 09 20 20 20 |en-depth|)).X. |
|000020e0| 20 20 20 28 74 0a 58 09 | 20 20 20 20 20 20 20 3b | (t.X.| ;|
|000020f0| 3b 20 63 6f 6e 74 69 6e | 75 65 73 20 73 74 61 74 |; contin|ues stat|
|00002100| 65 6d 65 6e 74 3b 20 69 | 6e 64 65 6e 74 20 73 6f |ement; i|ndent so|
|00002110| 6d 65 20 6d 6f 72 65 0a | 58 09 20 20 20 20 20 20 |me more.|X. |
|00002120| 20 28 2b 20 28 2a 20 73 | 65 6c 66 2d 69 6e 64 65 | (+ (* s|elf-inde|
|00002130| 6e 74 2d 6c 65 76 65 6c | 20 70 61 72 65 6e 2d 64 |nt-level| paren-d|
|00002140| 65 70 74 68 29 0a 58 09 | 09 20 20 73 65 6c 66 2d |epth).X.|. self-|
|00002150| 63 6f 6e 74 69 6e 75 61 | 74 69 6f 6e 2d 69 6e 64 |continua|tion-ind|
|00002160| 65 6e 74 2d 6c 65 76 65 | 6c 29 29 29 29 29 29 29 |ent-leve|l)))))))|
|00002170| 29 0a 58 0a 28 64 65 66 | 75 6e 20 73 65 6c 66 2d |).X.(def|un self-|
|00002180| 73 74 61 72 74 73 2d 73 | 74 61 74 65 6d 65 6e 74 |starts-s|tatement|
|00002190| 20 28 6c 69 6d 29 0a 58 | 20 20 28 73 61 76 65 2d | (lim).X| (save-|
|000021a0| 65 78 63 75 72 73 69 6f | 6e 0a 58 20 20 20 20 28 |excursio|n.X (|
|000021b0| 63 61 74 63 68 20 27 64 | 6f 6e 65 0a 58 20 20 20 |catch 'd|one.X |
|000021c0| 20 20 20 28 77 68 69 6c | 65 20 74 0a 58 09 28 73 | (whil|e t.X.(s|
|000021d0| 6b 69 70 2d 63 68 61 72 | 73 2d 62 61 63 6b 77 61 |kip-char|s-backwa|
|000021e0| 72 64 20 22 20 5c 74 5c | 6e 5c 66 22 20 6c 69 6d |rd " \t\|n\f" lim|
|000021f0| 29 0a 58 09 28 69 66 20 | 28 3c 3d 20 28 70 6f 69 |).X.(if |(<= (poi|
|00002200| 6e 74 29 20 6c 69 6d 29 | 20 28 74 68 72 6f 77 20 |nt) lim)| (throw |
|00002210| 27 64 6f 6e 65 20 74 29 | 29 0a 58 09 28 62 61 63 |'done t)|).X.(bac|
|00002220| 6b 77 61 72 64 2d 63 68 | 61 72 29 0a 58 09 28 63 |kward-ch|ar).X.(c|
|00002230| 6f 6e 64 20 28 28 6c 6f | 6f 6b 69 6e 67 2d 61 74 |ond ((lo|oking-at|
|00002240| 20 22 5c 22 22 29 0a 58 | 09 20 20 20 20 20 20 20 | "\"").X|. |
|00002250| 28 70 72 6f 67 6e 0a 58 | 09 09 20 28 73 65 61 72 |(progn.X|.. (sear|
|00002260| 63 68 2d 62 61 63 6b 77 | 61 72 64 20 22 5c 22 22 |ch-backw|ard "\""|
|00002270| 20 6c 69 6d 20 27 6d 6f | 76 65 2d 69 66 2d 66 61 | lim 'mo|ve-if-fa|
|00002280| 69 6c 29 0a 58 09 09 20 | 28 69 66 20 28 3c 3d 20 |il).X.. |(if (<= |
|00002290| 28 70 6f 69 6e 74 29 20 | 6c 69 6d 29 20 28 74 68 |(point) |lim) (th|
|000022a0| 72 6f 77 20 27 64 6f 6e | 65 20 74 29 29 29 29 0a |row 'don|e t)))).|
|000022b0| 58 09 20 20 20 20 20 20 | 28 74 20 28 74 68 72 6f |X. |(t (thro|
|000022c0| 77 20 27 64 6f 6e 65 0a | 58 09 09 09 28 6f 72 0a |w 'done.|X...(or.|
|000022d0| 58 09 09 09 20 28 6c 6f | 6f 6b 69 6e 67 2d 61 74 |X... (lo|oking-at|
|000022e0| 20 22 5c 5c 2e 22 29 0a | 58 09 09 09 20 28 6c 6f | "\\.").|X... (lo|
|000022f0| 6f 6b 69 6e 67 2d 61 74 | 20 22 28 22 29 0a 58 09 |oking-at| "(").X.|
|00002300| 09 09 20 28 6c 6f 6f 6b | 69 6e 67 2d 61 74 20 22 |.. (look|ing-at "|
|00002310| 5c 5c 5b 22 29 0a 58 09 | 09 09 20 28 6c 6f 6f 6b |\\[").X.|.. (look|
|00002320| 69 6e 67 2d 61 74 20 22 | 7c 22 29 29 29 29 29 29 |ing-at "||"))))))|
|00002330| 29 29 29 0a 58 0a 28 64 | 65 66 75 6e 20 65 6c 65 |))).X.(d|efun ele|
|00002340| 63 74 72 69 63 2d 73 65 | 6c 66 2d 62 72 61 63 65 |ctric-se|lf-brace|
|00002350| 20 28 61 72 67 29 0a 58 | 20 20 22 49 6e 73 65 72 | (arg).X| "Inser|
|00002360| 74 20 63 68 61 72 61 63 | 74 65 72 20 61 6e 64 20 |t charac|ter and |
|00002370| 63 6f 72 72 65 63 74 20 | 6c 69 6e 65 27 73 20 69 |correct |line's i|
|00002380| 6e 64 65 6e 74 61 74 69 | 6f 6e 2e 22 0a 58 20 20 |ndentati|on.".X |
|00002390| 28 69 6e 74 65 72 61 63 | 74 69 76 65 20 22 50 22 |(interac|tive "P"|
|000023a0| 29 0a 58 20 20 28 69 6e | 73 65 72 74 20 6c 61 73 |).X (in|sert las|
|000023b0| 74 2d 63 6f 6d 6d 61 6e | 64 2d 63 68 61 72 29 09 |t-comman|d-char).|
|000023c0| 09 3b 20 69 6e 73 65 72 | 74 20 61 72 67 2c 20 69 |.; inser|t arg, i|
|000023d0| 6e 20 61 20 77 61 79 20 | 74 68 61 74 20 77 6f 6e |n a way |that won|
|000023e0| 27 74 20 62 6c 69 6e 6b | 0a 58 20 20 28 73 65 6c |'t blink|.X (sel|
|000023f0| 66 2d 69 6e 64 65 6e 74 | 2d 6c 69 6e 65 29 09 09 |f-indent|-line)..|
|00002400| 09 3b 20 69 6e 64 65 6e | 74 20 69 74 0a 58 20 20 |.; inden|t it.X |
|00002410| 28 64 65 6c 65 74 65 2d | 63 68 61 72 20 2d 31 29 |(delete-|char -1)|
|00002420| 09 09 09 3b 20 64 65 6c | 65 74 65 20 61 6e 64 20 |...; del|ete and |
|00002430| 72 65 69 6e 73 65 72 74 | 20 61 72 67 20 73 6f 20 |reinsert| arg so |
|00002440| 69 74 20 62 6c 69 6e 6b | 73 0a 58 20 20 28 73 65 |it blink|s.X (se|
|00002450| 6c 66 2d 69 6e 73 65 72 | 74 2d 63 6f 6d 6d 61 6e |lf-inser|t-comman|
|00002460| 64 20 28 70 72 65 66 69 | 78 2d 6e 75 6d 65 72 69 |d (prefi|x-numeri|
|00002470| 63 2d 76 61 6c 75 65 20 | 61 72 67 29 29 29 0a 58 |c-value |arg))).X|
|00002480| 0a 28 64 65 66 75 6e 20 | 65 6e 64 2d 6f 66 2d 6f |.(defun |end-of-o|
|00002490| 62 6a 65 63 74 20 28 29 | 0a 58 20 20 22 4d 6f 76 |bject ()|.X "Mov|
|000024a0| 65 20 74 68 65 20 70 6f | 69 6e 74 20 74 6f 20 74 |e the po|int to t|
|000024b0| 68 65 20 73 70 6f 74 20 | 77 68 65 72 65 20 74 68 |he spot |where th|
|000024c0| 65 20 6f 62 6a 65 63 74 | 20 65 6e 64 73 2e 22 0a |e object| ends.".|
|000024d0| 3b 20 49 20 61 73 73 75 | 6d 65 20 74 68 61 74 20 |; I assu|me that |
|000024e0| 77 69 74 68 20 6e 6f 72 | 6d 61 6c 20 66 6f 72 6d |with nor|mal form|
|000024f0| 61 74 74 69 6e 67 2c 20 | 74 68 69 73 20 69 73 20 |atting, |this is |
|00002500| 61 20 6c 69 6e 65 20 74 | 68 61 74 20 68 61 73 0a |a line t|hat has.|
|00002510| 3b 20 6a 75 73 74 20 61 | 20 28 7c 29 20 6f 6e 20 |; just a| (|) on |
|00002520| 69 74 2e 0a 58 20 20 28 | 69 6e 74 65 72 61 63 74 |it..X (|interact|
|00002530| 69 76 65 29 0a 58 20 20 | 28 62 65 67 69 6e 6e 69 |ive).X |(beginni|
|00002540| 6e 67 2d 6f 66 2d 6c 69 | 6e 65 29 0a 58 20 20 28 |ng-of-li|ne).X (|
|00002550| 77 68 69 6c 65 20 28 61 | 6e 64 20 28 3c 20 28 70 |while (a|nd (< (p|
|00002560| 6f 69 6e 74 29 20 28 70 | 6f 69 6e 74 2d 6d 61 78 |oint) (p|oint-max|
|00002570| 29 29 0a 58 09 20 20 20 | 20 20 20 28 6e 6f 74 20 |)).X. | (not |
|00002580| 28 6c 6f 6f 6b 69 6e 67 | 2d 61 74 20 22 29 22 29 |(looking|-at ")")|
|00002590| 29 0a 58 09 20 20 20 20 | 20 20 28 6e 6f 74 20 28 |).X. | (not (|
|000025a0| 6c 6f 6f 6b 69 6e 67 2d | 61 74 20 22 5d 22 29 29 |looking-|at "]"))|
|000025b0| 0a 58 09 20 20 20 20 20 | 20 28 6e 6f 74 20 28 6c |.X. | (not (l|
|000025c0| 6f 6f 6b 69 6e 67 2d 61 | 74 20 22 7c 5b 20 5c 74 |ooking-a|t "|[ \t|
|000025d0| 5d 2a 29 22 29 29 0a 58 | 09 20 20 20 20 20 20 28 |]*)")).X|. (|
|000025e0| 6e 6f 74 20 28 6c 6f 6f | 6b 69 6e 67 2d 61 74 20 |not (loo|king-at |
|000025f0| 22 7c 5b 20 5c 74 5d 2a | 5d 22 29 29 29 0a 58 20 |"|[ \t]*|]"))).X |
|00002600| 20 20 20 28 66 6f 72 77 | 61 72 64 2d 6c 69 6e 65 | (forw|ard-line|
|00002610| 29 0a 58 20 20 20 20 28 | 62 65 67 69 6e 6e 69 6e |).X (|beginnin|
|00002620| 67 2d 6f 66 2d 6c 69 6e | 65 29 29 0a 58 20 20 28 |g-of-lin|e)).X (|
|00002630| 69 66 20 28 3c 20 28 70 | 6f 69 6e 74 29 20 28 70 |if (< (p|oint) (p|
|00002640| 6f 69 6e 74 2d 6d 61 78 | 29 29 20 28 66 6f 72 77 |oint-max|)) (forw|
|00002650| 61 72 64 2d 6c 69 6e 65 | 29 29 29 0a 58 0a 28 64 |ard-line|))).X.(d|
|00002660| 65 66 75 6e 20 62 65 67 | 69 6e 6e 69 6e 67 2d 6f |efun beg|inning-o|
|00002670| 66 2d 6f 62 6a 65 63 74 | 20 28 29 0a 58 20 20 22 |f-object| ().X "|
|00002680| 4d 6f 76 65 20 74 68 65 | 20 70 6f 69 6e 74 20 74 |Move the| point t|
|00002690| 6f 20 74 68 65 20 73 70 | 6f 74 20 77 68 65 72 65 |o the sp|ot where|
|000026a0| 20 74 68 65 20 6f 62 6a | 65 63 74 20 62 65 67 69 | the obj|ect begi|
|000026b0| 6e 73 2e 22 0a 3b 20 57 | 65 20 64 6f 20 74 68 69 |ns.".; W|e do thi|
|000026c0| 73 20 62 79 20 67 6f 69 | 6e 67 20 75 70 77 61 72 |s by goi|ng upwar|
|000026d0| 64 73 2c 20 6c 6f 6f 6b | 69 6e 67 20 66 6f 72 20 |ds, look|ing for |
|000026e0| 74 68 65 20 65 6e 64 20 | 6f 66 20 70 72 65 76 69 |the end |of previ|
|000026f0| 6f 75 73 20 6f 62 6a 65 | 63 74 2e 0a 3b 20 41 6e |ous obje|ct..; An|
|00002700| 20 61 6c 74 65 72 6e 61 | 74 69 76 65 20 77 61 79 | alterna|tive way|
|00002710| 20 69 73 20 74 6f 20 6c | 6f 6f 6b 20 66 6f 72 20 | is to l|ook for |
|00002720| 61 20 6c 69 6e 65 20 74 | 68 61 74 20 64 6f 65 73 |a line t|hat does|
|00002730| 6e 27 74 20 73 74 61 72 | 74 20 77 69 74 68 20 61 |n't star|t with a|
|00002740| 20 73 70 61 63 65 2e 0a | 3b 20 54 69 6d 65 20 77 | space..|; Time w|
|00002750| 69 6c 6c 20 74 65 6c 6c | 20 77 68 61 74 20 74 68 |ill tell| what th|
|00002760| 65 20 62 65 74 74 65 72 | 20 6d 65 74 68 6f 64 20 |e better| method |
|00002770| 69 73 2e 0a 58 20 20 28 | 69 6e 74 65 72 61 63 74 |is..X (|interact|
|00002780| 69 76 65 29 0a 58 20 20 | 28 62 65 67 69 6e 6e 69 |ive).X |(beginni|
|00002790| 6e 67 2d 6f 66 2d 6c 69 | 6e 65 29 0a 58 20 20 28 |ng-of-li|ne).X (|
|000027a0| 77 68 69 6c 65 20 28 61 | 6e 64 20 28 3e 20 28 70 |while (a|nd (> (p|
|000027b0| 6f 69 6e 74 29 20 28 70 | 6f 69 6e 74 2d 6d 69 6e |oint) (p|oint-min|
|000027c0| 29 29 0a 58 09 20 20 20 | 20 20 20 28 6e 6f 74 20 |)).X. | (not |
|000027d0| 28 6c 6f 6f 6b 69 6e 67 | 2d 61 74 20 22 29 22 29 |(looking|-at ")")|
|000027e0| 29 0a 58 09 20 20 20 20 | 20 20 28 6e 6f 74 20 28 |).X. | (not (|
|000027f0| 6c 6f 6f 6b 69 6e 67 2d | 61 74 20 22 5d 22 29 29 |looking-|at "]"))|
|00002800| 0a 58 09 20 20 20 20 20 | 20 28 6e 6f 74 20 28 6c |.X. | (not (l|
|00002810| 6f 6f 6b 69 6e 67 2d 61 | 74 20 22 7c 5b 20 5c 74 |ooking-a|t "|[ \t|
|00002820| 5d 2a 29 22 29 29 0a 58 | 09 20 20 20 20 20 20 28 |]*)")).X|. (|
|00002830| 6e 6f 74 20 28 6c 6f 6f | 6b 69 6e 67 2d 61 74 20 |not (loo|king-at |
|00002840| 22 7c 5b 20 5c 74 5d 2a | 5d 22 29 29 29 0a 58 20 |"|[ \t]*|]"))).X |
|00002850| 20 20 20 28 66 6f 72 77 | 61 72 64 2d 6c 69 6e 65 | (forw|ard-line|
|00002860| 20 2d 31 29 0a 58 20 20 | 20 20 28 62 65 67 69 6e | -1).X | (begin|
|00002870| 6e 69 6e 67 2d 6f 66 2d | 6c 69 6e 65 29 29 0a 3b |ning-of-|line)).;|
|00002880| 20 64 6f 6e 27 74 20 67 | 6f 20 66 6f 72 77 61 72 | don't g|o forwar|
|00002890| 64 20 61 74 20 74 68 65 | 20 74 6f 70 2e 0a 58 20 |d at the| top..X |
|000028a0| 20 28 69 66 20 28 3e 20 | 28 70 6f 69 6e 74 29 20 | (if (> |(point) |
|000028b0| 28 70 6f 69 6e 74 2d 6d | 69 6e 29 29 20 28 66 6f |(point-m|in)) (fo|
|000028c0| 72 77 61 72 64 2d 6c 69 | 6e 65 29 29 29 0a 58 0a |rward-li|ne))).X.|
|000028d0| 28 64 65 66 75 6e 20 66 | 6f 72 77 61 72 64 2d 6f |(defun f|orward-o|
|000028e0| 62 6a 65 63 74 20 28 26 | 6f 70 74 69 6f 6e 61 6c |bject (&|optional|
|000028f0| 20 6e 75 6d 29 0a 58 20 | 20 22 6d 6f 76 65 73 20 | num).X | "moves |
|00002900| 66 6f 72 77 61 72 64 20 | 69 6e 20 74 68 65 20 66 |forward |in the f|
|00002910| 69 6c 65 20 62 79 20 61 | 72 67 20 6f 62 6a 65 63 |ile by a|rg objec|
|00002920| 74 73 22 0a 58 20 20 28 | 69 6e 74 65 72 61 63 74 |ts".X (|interact|
|00002930| 69 76 65 20 22 70 22 29 | 0a 58 20 20 28 69 66 20 |ive "p")|.X (if |
|00002940| 28 6e 6f 74 20 6e 75 6d | 29 20 28 73 65 74 71 20 |(not num|) (setq |
|00002950| 6e 75 6d 20 31 29 29 0a | 58 20 20 28 77 68 69 6c |num 1)).|X (whil|
|00002960| 65 20 28 3e 20 6e 75 6d | 20 30 29 0a 58 20 20 20 |e (> num| 0).X |
|00002970| 20 28 65 6e 64 2d 6f 66 | 2d 6f 62 6a 65 63 74 29 | (end-of|-object)|
|00002980| 0a 58 20 20 20 20 28 73 | 65 74 71 20 6e 75 6d 20 |.X (s|etq num |
|00002990| 28 2d 20 6e 75 6d 20 31 | 29 29 29 29 0a 58 20 20 |(- num 1|)))).X |
|000029a0| 0a 28 64 65 66 75 6e 20 | 62 61 63 6b 77 61 72 64 |.(defun |backward|
|000029b0| 2d 6f 62 6a 65 63 74 20 | 28 26 6f 70 74 69 6f 6e |-object |(&option|
|000029c0| 61 6c 20 6e 75 6d 29 0a | 58 20 20 22 6d 6f 76 65 |al num).|X "move|
|000029d0| 73 20 62 61 63 6b 77 61 | 72 64 20 69 6e 20 74 68 |s backwa|rd in th|
|000029e0| 65 20 66 69 6c 65 20 62 | 79 20 61 72 67 20 6f 62 |e file b|y arg ob|
|000029f0| 6a 65 63 74 73 22 0a 58 | 20 20 28 69 6e 74 65 72 |jects".X| (inter|
|00002a00| 61 63 74 69 76 65 20 22 | 70 22 29 0a 58 20 20 28 |active "|p").X (|
|00002a10| 69 66 20 28 6e 6f 74 20 | 6e 75 6d 29 20 28 73 65 |if (not |num) (se|
|00002a20| 74 71 20 6e 75 6d 20 31 | 29 29 0a 58 20 20 28 66 |tq num 1|)).X (f|
|00002a30| 6f 72 77 61 72 64 2d 6c | 69 6e 65 20 2d 31 29 0a |orward-l|ine -1).|
|00002a40| 58 20 20 28 77 68 69 6c | 65 20 28 3e 20 6e 75 6d |X (whil|e (> num|
|00002a50| 20 30 29 0a 58 20 20 20 | 20 28 62 65 67 69 6e 6e | 0).X | (beginn|
|00002a60| 69 6e 67 2d 6f 66 2d 6c | 69 6e 65 29 0a 58 20 20 |ing-of-l|ine).X |
|00002a70| 20 20 28 77 68 69 6c 65 | 20 28 6f 72 20 28 6c 6f | (while| (or (lo|
|00002a80| 6f 6b 69 6e 67 2d 61 74 | 20 22 29 22 29 0a 58 09 |oking-at| ")").X.|
|00002a90| 20 20 20 20 20 20 20 28 | 6c 6f 6f 6b 69 6e 67 2d | (|looking-|
|00002aa0| 61 74 20 22 5d 22 29 0a | 58 09 20 20 20 20 20 20 |at "]").|X. |
|00002ab0| 20 28 6c 6f 6f 6b 69 6e | 67 2d 61 74 20 22 7c 5b | (lookin|g-at "|[|
|00002ac0| 20 5c 74 5d 2a 29 22 29 | 0a 58 09 20 20 20 20 20 | \t]*)")|.X. |
|00002ad0| 20 20 28 6c 6f 6f 6b 69 | 6e 67 2d 61 74 20 22 7c | (looki|ng-at "||
|00002ae0| 5b 20 5c 74 5d 2a 5d 22 | 29 29 0a 58 20 20 20 20 |[ \t]*]"|)).X |
|00002af0| 20 20 28 66 6f 72 77 61 | 72 64 2d 6c 69 6e 65 20 | (forwa|rd-line |
|00002b00| 2d 31 29 29 0a 58 20 20 | 20 20 28 62 65 67 69 6e |-1)).X | (begin|
|00002b10| 6e 69 6e 67 2d 6f 66 2d | 6f 62 6a 65 63 74 29 0a |ning-of-|object).|
|00002b20| 58 20 20 20 20 28 73 65 | 74 71 20 6e 75 6d 20 28 |X (se|tq num (|
|00002b30| 2d 20 6e 75 6d 20 31 29 | 29 29 29 0a 58 0a 53 48 |- num 1)|))).X.SH|
|00002b40| 41 52 5f 45 4f 46 0a 63 | 68 6d 6f 64 20 30 34 34 |AR_EOF.c|hmod 044|
|00002b50| 34 20 73 65 6c 66 2d 6d | 6f 64 65 2e 65 6c 20 7c |4 self-m|ode.el ||
|00002b60| 7c 0a 65 63 68 6f 20 27 | 72 65 73 74 6f 72 65 20 ||.echo '|restore |
|00002b70| 6f 66 20 73 65 6c 66 2d | 6d 6f 64 65 2e 65 6c 20 |of self-|mode.el |
|00002b80| 66 61 69 6c 65 64 27 0a | 57 63 5f 63 3d 22 60 77 |failed'.|Wc_c="`w|
|00002b90| 63 20 2d 63 20 3c 20 27 | 73 65 6c 66 2d 6d 6f 64 |c -c < '|self-mod|
|00002ba0| 65 2e 65 6c 27 60 22 0a | 74 65 73 74 20 31 30 30 |e.el'`".|test 100|
|00002bb0| 30 39 20 2d 65 71 20 22 | 24 57 63 5f 63 22 20 7c |09 -eq "|$Wc_c" ||
|00002bc0| 7c 0a 09 65 63 68 6f 20 | 27 73 65 6c 66 2d 6d 6f ||..echo |'self-mo|
|00002bd0| 64 65 2e 65 6c 3a 20 6f | 72 69 67 69 6e 61 6c 20 |de.el: o|riginal |
|00002be0| 73 69 7a 65 20 31 30 30 | 30 39 2c 20 63 75 72 72 |size 100|09, curr|
|00002bf0| 65 6e 74 20 73 69 7a 65 | 27 20 22 24 57 63 5f 63 |ent size|' "$Wc_c|
|00002c00| 22 0a 66 69 0a 23 20 3d | 3d 3d 3d 3d 3d 3d 3d 3d |".fi.# =|========|
|00002c10| 3d 3d 3d 3d 20 73 65 6c | 66 2e 65 6c 20 3d 3d 3d |==== sel|f.el ===|
|00002c20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0a 69 66 20 74 |========|===.if t|
|00002c30| 65 73 74 20 2d 66 20 27 | 73 65 6c 66 2e 65 6c 27 |est -f '|self.el'|
|00002c40| 20 2d 61 20 58 22 24 31 | 22 20 21 3d 20 58 22 2d | -a X"$1|" != X"-|
|00002c50| 63 22 3b 20 74 68 65 6e | 0a 09 65 63 68 6f 20 27 |c"; then|..echo '|
|00002c60| 78 20 2d 20 73 6b 69 70 | 70 69 6e 67 20 73 65 6c |x - skip|ping sel|
|00002c70| 66 2e 65 6c 20 28 46 69 | 6c 65 20 61 6c 72 65 61 |f.el (Fi|le alrea|
|00002c80| 64 79 20 65 78 69 73 74 | 73 29 27 0a 65 6c 73 65 |dy exist|s)'.else|
|00002c90| 0a 65 63 68 6f 20 27 78 | 20 2d 20 65 78 74 72 61 |.echo 'x| - extra|
|00002ca0| 63 74 69 6e 67 20 73 65 | 6c 66 2e 65 6c 20 28 54 |cting se|lf.el (T|
|00002cb0| 65 78 74 29 27 0a 73 65 | 64 20 27 73 2f 5e 58 2f |ext)'.se|d 's/^X/|
|00002cc0| 2f 27 20 3c 3c 20 27 53 | 48 41 52 5f 45 4f 46 27 |/' << 'S|HAR_EOF'|
|00002cd0| 20 3e 20 27 73 65 6c 66 | 2e 65 6c 27 20 26 26 0a | > 'self|.el' &&.|
|00002ce0| 3b 3b 20 49 6e 66 65 72 | 69 6f 72 20 73 65 6c 66 |;; Infer|ior self|
|00002cf0| 20 6d 6f 64 65 0a 3b 3b | 0a 3b 3b 20 46 6f 72 20 | mode.;;|.;; For |
|00002d00| 72 75 6e 6e 69 6e 67 20 | 61 20 53 65 6c 66 20 69 |running |a Self i|
|00002d10| 6e 74 65 72 70 72 65 74 | 65 72 20 75 6e 64 65 72 |nterpret|er under|
|00002d20| 20 45 6d 61 63 73 2e 0a | 3b 3b 20 48 61 63 6b 65 | Emacs..|;; Hacke|
|00002d30| 64 20 6d 79 20 4d 69 63 | 68 61 65 6c 20 52 69 63 |d my Mic|hael Ric|
|00002d40| 68 61 72 64 73 6f 6e 20 | 3c 6d 63 72 40 70 68 79 |hardson |<mcr@phy|
|00002d50| 73 69 63 73 2e 63 61 72 | 6c 65 74 6f 6e 2e 63 61 |sics.car|leton.ca|
|00002d60| 3e 0a 3b 3b 20 52 65 71 | 75 69 72 65 73 20 61 73 |>.;; Req|uires as|
|00002d70| 73 6f 63 69 61 74 65 64 | 20 73 65 6c 66 2d 6d 6f |sociated| self-mo|
|00002d80| 64 65 2e 65 6c 20 74 6f | 20 62 65 20 6f 6e 20 79 |de.el to| be on y|
|00002d90| 6f 75 72 20 6c 69 62 72 | 61 72 79 20 70 61 74 68 |our libr|ary path|
|00002da0| 2e 0a 3b 3b 0a 3b 3b 20 | 54 68 69 73 20 63 6f 64 |..;;.;; |This cod|
|00002db0| 65 20 62 61 73 65 64 20 | 76 65 72 79 20 73 74 72 |e based |very str|
|00002dc0| 6f 6e 67 6c 79 20 69 6e | 20 74 68 65 20 69 6e 66 |ongly in| the inf|
|00002dd0| 65 72 69 6f 72 20 6c 69 | 73 70 20 6d 6f 64 65 0a |erior li|sp mode.|
|00002de0| 3b 3b 20 66 6f 75 6e 64 | 20 69 6e 20 73 68 65 6c |;; found| in shel|
|00002df0| 6c 2e 65 6c 0a 3b 3b 0a | 58 0a 3b 0a 3b 20 24 49 |l.el.;;.|X.;.; $I|
|00002e00| 64 3a 20 73 65 6c 66 2e | 65 6c 2c 76 20 31 2e 32 |d: self.|el,v 1.2|
|00002e10| 20 31 39 39 33 2f 30 35 | 2f 31 34 20 32 31 3a 34 | 1993/05|/14 21:4|
|00002e20| 35 3a 30 31 20 72 69 63 | 68 61 72 64 73 20 45 78 |5:01 ric|hards Ex|
|00002e30| 70 20 24 0a 3b 0a 3b 20 | 24 4c 6f 67 3a 20 73 65 |p $.;.; |$Log: se|
|00002e40| 6c 66 2e 65 6c 2c 76 20 | 24 0a 3b 20 52 65 76 69 |lf.el,v |$.; Revi|
|00002e50| 73 69 6f 6e 20 31 2e 32 | 20 20 31 39 39 33 2f 30 |sion 1.2| 1993/0|
|00002e60| 35 2f 31 34 20 20 32 31 | 3a 34 35 3a 30 31 20 20 |5/14 21|:45:01 |
|00002e70| 72 69 63 68 61 72 64 73 | 0a 3b 20 73 65 6c 66 2d |richards|.; self-|
|00002e80| 73 65 6e 64 2d 6f 62 6a | 65 63 74 20 64 6f 65 73 |send-obj|ect does|
|00002e90| 6e 27 74 20 61 6c 77 61 | 79 73 20 77 6f 72 6b 20 |n't alwa|ys work |
|00002ea0| 71 75 69 74 65 20 72 69 | 67 68 74 20 69 66 20 79 |quite ri|ght if y|
|00002eb0| 6f 75 20 61 72 65 20 61 | 74 20 74 68 65 0a 3b 20 |ou are a|t the.; |
|00002ec0| 76 65 72 79 20 62 65 67 | 69 6e 6e 69 6e 67 20 6f |very beg|inning o|
|00002ed0| 66 20 74 68 65 20 6f 62 | 6a 65 63 74 2e 20 46 69 |f the ob|ject. Fi|
|00002ee0| 78 65 64 20 69 74 20 74 | 6f 20 67 6f 20 74 68 65 |xed it t|o go the|
|00002ef0| 20 62 65 67 69 6e 6e 69 | 6e 67 20 66 69 72 73 74 | beginni|ng first|
|00002f00| 2e 0a 3b 0a 3b 20 52 65 | 76 69 73 69 6f 6e 20 31 |..;.; Re|vision 1|
|00002f10| 2e 31 20 20 31 39 39 33 | 2f 30 35 2f 31 34 20 20 |.1 1993|/05/14 |
|00002f20| 32 31 3a 31 32 3a 31 31 | 20 20 72 69 63 68 61 72 |21:12:11| richar|
|00002f30| 64 73 0a 3b 20 49 6e 69 | 74 69 61 6c 20 72 65 76 |ds.; Ini|tial rev|
|00002f40| 69 73 69 6f 6e 0a 3b 0a | 3b 0a 58 0a 28 72 65 71 |ision.;.|;.X.(req|
|00002f50| 75 69 72 65 20 27 73 68 | 65 6c 6c 29 0a 28 6c 6f |uire 'sh|ell).(lo|
|00002f60| 61 64 2d 6c 69 62 72 61 | 72 79 20 22 73 65 6c 66 |ad-libra|ry "self|
|00002f70| 2d 6d 6f 64 65 22 29 0a | 58 0a 28 64 65 66 76 61 |-mode").|X.(defva|
|00002f80| 72 20 69 6e 66 65 72 69 | 6f 72 2d 73 65 6c 66 2d |r inferi|or-self-|
|00002f90| 6d 6f 64 65 2d 6d 61 70 | 20 6e 69 6c 29 0a 58 0a |mode-map| nil).X.|
|00002fa0| 28 69 66 20 69 6e 66 65 | 72 69 6f 72 2d 73 65 6c |(if infe|rior-sel|
|00002fb0| 66 2d 6d 6f 64 65 2d 6d | 61 70 0a 58 20 20 20 20 |f-mode-m|ap.X |
|00002fc0| 6e 69 6c 0a 58 20 20 28 | 70 72 6f 67 6e 20 0a 58 |nil.X (|progn .X|
|00002fd0| 20 20 20 20 28 73 65 74 | 71 20 69 6e 66 65 72 69 | (set|q inferi|
|00002fe0| 6f 72 2d 73 65 6c 66 2d | 6d 6f 64 65 2d 6d 61 70 |or-self-|mode-map|
|00002ff0| 20 28 63 6f 70 79 2d 61 | 6c 69 73 74 20 73 68 65 | (copy-a|list she|
|00003000| 6c 6c 2d 6d 6f 64 65 2d | 6d 61 70 29 29 0a 58 20 |ll-mode-|map)).X |
|00003010| 20 20 20 28 73 65 6c 66 | 2d 6d 6f 64 65 2d 63 6f | (self|-mode-co|
|00003020| 6d 6d 61 6e 64 73 20 69 | 6e 66 65 72 69 6f 72 2d |mmands i|nferior-|
|00003030| 73 65 6c 66 2d 6d 6f 64 | 65 2d 6d 61 70 29 0a 58 |self-mod|e-map).X|
|00003040| 20 20 20 20 28 64 65 66 | 69 6e 65 2d 6b 65 79 20 | (def|ine-key |
|00003050| 69 6e 66 65 72 69 6f 72 | 2d 73 65 6c 66 2d 6d 6f |inferior|-self-mo|
|00003060| 64 65 2d 6d 61 70 20 22 | 5c 65 5c 43 2d 78 22 20 |de-map "|\e\C-x" |
|00003070| 27 73 65 6c 66 2d 73 65 | 6e 64 2d 6f 62 6a 65 63 |'self-se|nd-objec|
|00003080| 74 29 29 29 0a 58 0a 28 | 64 65 66 76 61 72 20 69 |t))).X.(|defvar i|
|00003090| 6e 66 65 72 69 6f 72 2d | 73 65 6c 66 2d 70 72 6f |nferior-|self-pro|
|000030a0| 67 72 61 6d 20 22 53 65 | 6c 66 22 0a 58 20 20 22 |gram "Se|lf".X "|
|000030b0| 2a 50 72 6f 67 72 61 6d | 20 6e 61 6d 65 20 66 6f |*Program| name fo|
|000030c0| 72 20 69 6e 76 6f 6b 69 | 6e 67 20 61 6e 20 69 6e |r invoki|ng an in|
|000030d0| 66 65 72 69 6f 72 20 53 | 65 6c 66 20 77 69 74 68 |ferior S|elf with|
|000030e0| 20 60 72 75 6e 2d 73 65 | 6c 66 27 2e 20 59 6f 75 | `run-se|lf'. You|
|000030f0| 20 6d 69 67 68 74 20 77 | 61 6e 74 20 74 6f 20 73 | might w|ant to s|
|00003100| 65 74 20 74 68 69 73 20 | 79 6f 75 72 20 66 61 76 |et this |your fav|
|00003110| 6f 72 69 74 65 20 53 6e | 61 70 73 68 6f 74 2c 20 |orite Sn|apshot, |
|00003120| 6f 72 20 73 65 74 20 74 | 68 69 73 20 76 61 72 69 |or set t|his vari|
|00003130| 61 62 6c 65 20 69 6e 20 | 61 6e 20 45 6d 61 63 73 |able in |an Emacs|
|00003140| 20 66 69 6c 65 20 76 61 | 72 69 61 62 6c 65 2e 22 | file va|riable."|
|00003150| 29 0a 58 0a 28 64 65 66 | 76 61 72 20 69 6e 66 65 |).X.(def|var infe|
|00003160| 72 69 6f 72 2d 73 65 6c | 66 2d 6c 6f 61 64 2d 63 |rior-sel|f-load-c|
|00003170| 6f 6d 6d 61 6e 64 20 22 | 27 25 73 27 20 5f 52 75 |ommand "|'%s' _Ru|
|00003180| 6e 53 63 72 69 70 74 5c | 6e 22 0a 58 20 20 22 2a |nScript\|n".X "*|
|00003190| 46 6f 72 6d 61 74 2d 73 | 74 72 69 6e 67 20 66 6f |Format-s|tring fo|
|000031a0| 72 20 62 75 69 6c 64 69 | 6e 67 20 61 20 53 65 6c |r buildi|ng a Sel|
|000031b0| 66 20 65 78 70 72 65 73 | 73 69 6f 6e 20 74 6f 20 |f expres|sion to |
|000031c0| 6c 6f 61 64 20 61 20 66 | 69 6c 65 2e 0a 54 68 69 |load a f|ile..Thi|
|000031d0| 73 20 66 6f 72 6d 61 74 | 20 73 74 72 69 6e 67 20 |s format| string |
|000031e0| 73 68 6f 75 6c 64 20 75 | 73 65 20 25 73 20 74 6f |should u|se %s to|
|000031f0| 20 73 75 62 73 74 69 74 | 75 74 65 20 61 20 66 69 | substit|ute a fi|
|00003200| 6c 65 20 6e 61 6d 65 0a | 61 6e 64 20 73 68 6f 75 |le name.|and shou|
|00003210| 6c 64 20 72 65 73 75 6c | 74 20 69 6e 20 61 20 53 |ld resul|t in a S|
|00003220| 65 6c 66 20 65 78 70 72 | 65 73 73 69 6f 6e 20 74 |elf expr|ession t|
|00003230| 68 61 74 20 77 69 6c 6c | 20 63 6f 6d 6d 61 6e 64 |hat will| command|
|00003240| 20 74 68 65 20 69 6e 66 | 65 72 69 6f 72 20 53 65 | the inf|erior Se|
|00003250| 6c 66 0a 74 6f 20 6c 6f | 61 64 20 74 68 61 74 20 |lf.to lo|ad that |
|00003260| 66 69 6c 65 2e 20 20 22 | 29 0a 58 0a 28 64 65 66 |file. "|).X.(def|
|00003270| 76 61 72 20 69 6e 66 65 | 72 69 6f 72 2d 73 65 6c |var infe|rior-sel|
|00003280| 66 2d 70 72 6f 6d 70 74 | 20 22 5e 2e 2a 3e 22 0a |f-prompt| "^.*>".|
|00003290| 58 20 20 22 2a 52 65 67 | 65 78 70 20 74 6f 20 72 |X "*Reg|exp to r|
|000032a0| 65 63 6f 67 6e 69 7a 65 | 20 70 72 6f 6d 70 74 73 |ecognize| prompts|
|000032b0| 20 66 72 6f 6d 20 74 68 | 65 20 69 6e 66 65 72 69 | from th|e inferi|
|000032c0| 6f 72 20 53 65 6c 66 2e | 22 29 0a 58 0a 28 64 65 |or Self.|").X.(de|
|000032d0| 66 75 6e 20 69 6e 66 65 | 72 69 6f 72 2d 73 65 6c |fun infe|rior-sel|
|000032e0| 66 2d 6d 6f 64 65 20 28 | 29 0a 58 20 20 22 4d 61 |f-mode (|).X "Ma|
|000032f0| 6a 6f 72 20 6d 6f 64 65 | 20 66 6f 72 20 69 6e 74 |jor mode| for int|
|00003300| 65 72 61 63 74 69 6e 67 | 20 77 69 74 68 20 61 6e |eracting| with an|
|00003310| 20 69 6e 66 65 72 69 6f | 72 20 53 65 6c 66 20 70 | inferio|r Self p|
|00003320| 72 6f 63 65 73 73 2e 0a | 52 75 6e 73 20 61 20 53 |rocess..|Runs a S|
|00003330| 65 6c 66 20 69 6e 74 65 | 72 70 72 65 74 65 72 20 |elf inte|rpreter |
|00003340| 61 73 20 61 20 73 75 62 | 70 72 6f 63 65 73 73 20 |as a sub|process |
|00003350| 6f 66 20 45 6d 61 63 73 | 2c 20 77 69 74 68 20 53 |of Emacs|, with S|
|00003360| 65 6c 66 20 49 2f 4f 0a | 74 68 72 6f 75 67 68 20 |elf I/O.|through |
|00003370| 61 6e 20 45 6d 61 63 73 | 20 62 75 66 66 65 72 2e |an Emacs| buffer.|
|00003380| 20 20 56 61 72 69 61 62 | 6c 65 20 69 6e 66 65 72 | Variab|le infer|
|00003390| 69 6f 72 2d 73 65 6c 66 | 2d 70 72 6f 67 72 61 6d |ior-self|-program|
|000033a0| 20 63 6f 6e 74 72 6f 6c | 73 0a 77 68 69 63 68 20 | control|s.which |
|000033b0| 53 65 6c 66 20 69 6e 74 | 65 72 70 72 65 74 65 72 |Self int|erpreter|
|000033c0| 20 69 73 20 72 75 6e 2e | 20 20 56 61 72 69 61 62 | is run.| Variab|
|000033d0| 6c 65 73 20 69 6e 66 65 | 72 69 6f 72 2d 73 65 6c |les infe|rior-sel|
|000033e0| 66 2d 70 72 6f 6d 70 74 | 0a 61 6e 64 20 69 6e 66 |f-prompt|.and inf|
|000033f0| 65 72 69 6f 72 2d 73 65 | 6c 66 2d 6c 6f 61 64 2d |erior-se|lf-load-|
|00003400| 63 6f 6d 6d 61 6e 64 20 | 63 61 6e 20 63 75 73 74 |command |can cust|
|00003410| 6f 6d 69 7a 65 20 74 68 | 69 73 20 6d 6f 64 65 20 |omize th|is mode |
|00003420| 66 6f 72 20 64 69 66 66 | 65 72 65 6e 74 0a 53 65 |for diff|erent.Se|
|00003430| 6c 66 20 69 6e 74 65 72 | 70 72 65 74 65 72 73 2e |lf inter|preters.|
|00003440| 0a 58 0a 43 6f 6d 6d 61 | 6e 64 73 3a 0a 44 45 4c |.X.Comma|nds:.DEL|
|00003450| 45 54 45 20 63 6f 6e 76 | 65 72 74 73 20 74 61 62 |ETE conv|erts tab|
|00003460| 73 20 74 6f 20 73 70 61 | 63 65 73 20 61 73 20 69 |s to spa|ces as i|
|00003470| 74 20 6d 6f 76 65 73 20 | 62 61 63 6b 2e 0a 54 41 |t moves |back..TA|
|00003480| 42 20 69 6e 64 65 6e 74 | 73 20 66 6f 72 20 53 65 |B indent|s for Se|
|00003490| 6c 66 3b 20 77 69 74 68 | 20 61 72 67 75 6d 65 6e |lf; with| argumen|
|000034a0| 74 2c 20 73 68 69 66 74 | 73 20 72 65 73 74 0a 58 |t, shift|s rest.X|
|000034b0| 20 6f 66 20 65 78 70 72 | 65 73 73 69 6f 6e 20 72 | of expr|ession r|
|000034c0| 69 67 69 64 6c 79 20 77 | 69 74 68 20 74 68 65 20 |igidly w|ith the |
|000034d0| 63 75 72 72 65 6e 74 20 | 6c 69 6e 65 2e 0a 4d 65 |current |line..Me|
|000034e0| 74 61 2d 43 6f 6e 74 72 | 6f 6c 2d 51 20 64 6f 65 |ta-Contr|ol-Q doe|
|000034f0| 73 20 54 41 42 20 6f 6e | 20 65 61 63 68 20 6c 69 |s TAB on| each li|
|00003500| 6e 65 20 73 74 61 72 74 | 69 6e 67 20 77 69 74 68 |ne start|ing with|
|00003510| 69 6e 20 66 6f 6c 6c 6f | 77 69 6e 67 20 65 78 70 |in follo|wing exp|
|00003520| 72 65 73 73 69 6f 6e 2e | 0a 50 61 72 61 67 72 61 |ression.|.Paragra|
|00003530| 70 68 73 20 61 72 65 20 | 73 65 70 61 72 61 74 65 |phs are |separate|
|00003540| 64 20 6f 6e 6c 79 20 62 | 79 20 62 6c 61 6e 6b 20 |d only b|y blank |
|00003550| 6c 69 6e 65 73 2e 20 20 | 53 65 6d 69 63 6f 6c 6f |lines. |Semicolo|
|00003560| 6e 73 20 73 74 61 72 74 | 20 63 6f 6d 6d 65 6e 74 |ns start| comment|
|00003570| 73 2e 0a 58 0a 52 65 74 | 75 72 6e 20 61 74 20 65 |s..X.Ret|urn at e|
|00003580| 6e 64 20 6f 66 20 62 75 | 66 66 65 72 20 73 65 6e |nd of bu|ffer sen|
|00003590| 64 73 20 6c 69 6e 65 20 | 61 73 20 69 6e 70 75 74 |ds line |as input|
|000035a0| 2e 0a 52 65 74 75 72 6e | 20 6e 6f 74 20 61 74 20 |..Return| not at |
|000035b0| 65 6e 64 20 63 6f 70 69 | 65 73 20 72 65 73 74 20 |end copi|es rest |
|000035c0| 6f 66 20 6c 69 6e 65 20 | 74 6f 20 65 6e 64 20 61 |of line |to end a|
|000035d0| 6e 64 20 73 65 6e 64 73 | 20 69 74 2e 0a 58 0a 54 |nd sends| it..X.T|
|000035e0| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 63 6f 6d |he follo|wing com|
|000035f0| 6d 61 6e 64 73 20 69 6d | 69 74 61 74 65 20 74 68 |mands im|itate th|
|00003600| 65 20 75 73 75 61 6c 20 | 55 6e 69 78 20 69 6e 74 |e usual |Unix int|
|00003610| 65 72 72 75 70 74 20 61 | 6e 64 0a 65 64 69 74 69 |errupt a|nd.editi|
|00003620| 6e 67 20 63 6f 6e 74 72 | 6f 6c 20 63 68 61 72 61 |ng contr|ol chara|
|00003630| 63 74 65 72 73 3a 0a 5c | 5c 7b 73 68 65 6c 6c 2d |cters:.\|\{shell-|
|00003640| 6d 6f 64 65 2d 6d 61 70 | 7d 0a 58 0a 45 6e 74 72 |mode-map|}.X.Entr|
|00003650| 79 20 74 6f 20 74 68 69 | 73 20 6d 6f 64 65 20 63 |y to thi|s mode c|
|00003660| 61 6c 6c 73 20 74 68 65 | 20 76 61 6c 75 65 20 6f |alls the| value o|
|00003670| 66 20 73 65 6c 66 2d 6d | 6f 64 65 2d 68 6f 6f 6b |f self-m|ode-hook|
|00003680| 20 77 69 74 68 20 6e 6f | 20 61 72 67 75 6d 65 6e | with no| argumen|
|00003690| 74 73 2c 0a 69 66 20 74 | 68 61 74 20 76 61 6c 75 |ts,.if t|hat valu|
|000036a0| 65 20 69 73 20 6e 6f 6e | 2d 6e 69 6c 2e 20 20 4c |e is non|-nil. L|
|000036b0| 69 6b 65 77 69 73 65 20 | 77 69 74 68 20 74 68 65 |ikewise |with the|
|000036c0| 20 76 61 6c 75 65 20 6f | 66 20 73 68 65 6c 6c 2d | value o|f shell-|
|000036d0| 6d 6f 64 65 2d 68 6f 6f | 6b 2e 0a 73 65 6c 66 2d |mode-hoo|k..self-|
|000036e0| 6d 6f 64 65 2d 68 6f 6f | 6b 20 69 73 20 63 61 6c |mode-hoo|k is cal|
|000036f0| 6c 65 64 20 61 66 74 65 | 72 20 73 68 65 6c 6c 2d |led afte|r shell-|
|00003700| 6d 6f 64 65 2d 68 6f 6f | 6b 2e 0a 58 0a 59 6f 75 |mode-hoo|k..X.You|
|00003710| 20 63 61 6e 20 73 65 6e | 64 20 74 65 78 74 20 74 | can sen|d text t|
|00003720| 6f 20 74 68 65 20 69 6e | 66 65 72 69 6f 72 20 53 |o the in|ferior S|
|00003730| 65 6c 66 20 66 72 6f 6d | 20 6f 74 68 65 72 20 62 |elf from| other b|
|00003740| 75 66 66 65 72 73 0a 75 | 73 69 6e 67 20 74 68 65 |uffers.u|sing the|
|00003750| 20 63 6f 6d 6d 61 6e 64 | 73 20 70 72 6f 63 65 73 | command|s proces|
|00003760| 73 2d 73 65 6e 64 2d 72 | 65 67 69 6f 6e 2c 20 70 |s-send-r|egion, p|
|00003770| 72 6f 63 65 73 73 2d 73 | 65 6e 64 2d 73 74 72 69 |rocess-s|end-stri|
|00003780| 6e 67 0a 61 6e 64 20 5c | 5c 5b 73 65 6c 66 2d 73 |ng.and \|\[self-s|
|00003790| 65 6e 64 2d 6f 62 6a 65 | 63 74 5d 2e 22 0a 58 20 |end-obje|ct].".X |
|000037a0| 20 28 69 6e 74 65 72 61 | 63 74 69 76 65 29 0a 58 | (intera|ctive).X|
|000037b0| 20 20 28 6b 69 6c 6c 2d | 61 6c 6c 2d 6c 6f 63 61 | (kill-|all-loca|
|000037c0| 6c 2d 76 61 72 69 61 62 | 6c 65 73 29 0a 58 20 20 |l-variab|les).X |
|000037d0| 28 73 65 74 71 20 6d 61 | 6a 6f 72 2d 6d 6f 64 65 |(setq ma|jor-mode|
|000037e0| 20 27 69 6e 66 65 72 69 | 6f 72 2d 73 65 6c 66 2d | 'inferi|or-self-|
|000037f0| 6d 6f 64 65 29 0a 58 20 | 20 28 73 65 74 71 20 6d |mode).X | (setq m|
|00003800| 6f 64 65 2d 6e 61 6d 65 | 20 22 49 6e 66 65 72 69 |ode-name| "Inferi|
|00003810| 6f 72 20 53 65 6c 66 22 | 29 0a 58 20 20 28 73 65 |or Self"|).X (se|
|00003820| 74 71 20 6d 6f 64 65 2d | 6c 69 6e 65 2d 70 72 6f |tq mode-|line-pro|
|00003830| 63 65 73 73 20 27 28 22 | 3a 20 25 73 22 29 29 0a |cess '("|: %s")).|
|00003840| 58 20 20 28 75 73 65 2d | 6c 6f 63 61 6c 2d 6d 61 |X (use-|local-ma|
|00003850| 70 20 69 6e 66 65 72 69 | 6f 72 2d 73 65 6c 66 2d |p inferi|or-self-|
|00003860| 6d 6f 64 65 2d 6d 61 70 | 29 0a 58 20 20 28 6d 61 |mode-map|).X (ma|
|00003870| 6b 65 2d 6c 6f 63 61 6c | 2d 76 61 72 69 61 62 6c |ke-local|-variabl|
|00003880| 65 20 27 6c 61 73 74 2d | 69 6e 70 75 74 2d 73 74 |e 'last-|input-st|
|00003890| 61 72 74 29 0a 58 20 20 | 28 73 65 74 71 20 6c 61 |art).X |(setq la|
|000038a0| 73 74 2d 69 6e 70 75 74 | 2d 73 74 61 72 74 20 28 |st-input|-start (|
|000038b0| 6d 61 6b 65 2d 6d 61 72 | 6b 65 72 29 29 0a 58 20 |make-mar|ker)).X |
|000038c0| 20 28 6d 61 6b 65 2d 6c | 6f 63 61 6c 2d 76 61 72 | (make-l|ocal-var|
|000038d0| 69 61 62 6c 65 20 27 6c | 61 73 74 2d 69 6e 70 75 |iable 'l|ast-inpu|
|000038e0| 74 2d 65 6e 64 29 0a 58 | 20 20 28 73 65 74 71 20 |t-end).X| (setq |
|000038f0| 6c 61 73 74 2d 69 6e 70 | 75 74 2d 65 6e 64 20 28 |last-inp|ut-end (|
|00003900| 6d 61 6b 65 2d 6d 61 72 | 6b 65 72 29 29 0a 58 20 |make-mar|ker)).X |
|00003910| 20 28 73 65 6c 66 2d 6d | 6f 64 65 2d 76 61 72 69 | (self-m|ode-vari|
|00003920| 61 62 6c 65 73 29 0a 58 | 20 20 28 72 75 6e 2d 68 |ables).X| (run-h|
|00003930| 6f 6f 6b 73 20 27 73 68 | 65 6c 6c 2d 6d 6f 64 65 |ooks 'sh|ell-mode|
|00003940| 2d 68 6f 6f 6b 20 27 73 | 65 6c 66 2d 6d 6f 64 65 |-hook 's|elf-mode|
|00003950| 2d 68 6f 6f 6b 20 27 69 | 6e 66 65 72 69 6f 72 2d |-hook 'i|nferior-|
|00003960| 73 65 6c 66 2d 6d 6f 64 | 65 2d 68 6f 6f 6b 29 29 |self-mod|e-hook))|
|00003970| 0a 58 0a 28 64 65 66 75 | 6e 20 72 75 6e 2d 73 65 |.X.(defu|n run-se|
|00003980| 6c 66 20 28 29 0a 58 20 | 20 22 52 75 6e 20 61 6e |lf ().X | "Run an|
|00003990| 20 69 6e 66 65 72 69 6f | 72 20 53 65 6c 66 20 70 | inferio|r Self p|
|000039a0| 72 6f 63 65 73 73 2c 20 | 69 6e 70 75 74 20 61 6e |rocess, |input an|
|000039b0| 64 20 6f 75 74 70 75 74 | 20 76 69 61 20 62 75 66 |d output| via buf|
|000039c0| 66 65 72 20 2a 73 65 6c | 66 2a 2e 22 0a 58 20 20 |fer *sel|f*.".X |
|000039d0| 28 69 6e 74 65 72 61 63 | 74 69 76 65 29 0a 58 20 |(interac|tive).X |
|000039e0| 20 28 73 77 69 74 63 68 | 2d 74 6f 2d 62 75 66 66 | (switch|-to-buff|
|000039f0| 65 72 20 28 6d 61 6b 65 | 2d 73 68 65 6c 6c 20 22 |er (make|-shell "|
|00003a00| 73 65 6c 66 22 20 69 6e | 66 65 72 69 6f 72 2d 73 |self" in|ferior-s|
|00003a10| 65 6c 66 2d 70 72 6f 67 | 72 61 6d 29 29 0a 58 20 |elf-prog|ram)).X |
|00003a20| 20 28 63 64 20 28 67 65 | 74 65 6e 76 20 22 53 45 | (cd (ge|tenv "SE|
|00003a30| 4c 46 5f 57 4f 52 4b 49 | 4e 47 5f 44 49 52 22 29 |LF_WORKI|NG_DIR")|
|00003a40| 29 20 20 3b 20 64 6f 20 | 74 68 69 73 20 73 6f 20 |) ; do |this so |
|00003a50| 74 68 65 20 75 73 65 72 | 20 6b 6e 6f 77 73 20 77 |the user| knows w|
|00003a60| 68 65 72 65 0a 58 20 20 | 20 20 20 20 20 20 20 20 |here.X | |
|00003a70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a80| 20 20 20 20 20 20 20 20 | 20 20 3b 20 74 68 65 20 | | ; the |
|00003a90| 53 65 6c 66 20 69 73 20 | 72 6f 6f 74 65 64 2e 20 |Self is |rooted. |
|00003aa0| 42 55 54 21 20 42 65 77 | 61 72 65 2c 20 74 68 69 |BUT! Bew|are, thi|
|00003ab0| 73 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |s.X | |
|00003ac0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ad0| 20 20 20 20 20 20 20 3b | 20 6c 69 6b 65 6c 79 20 | ;| likely |
|00003ae0| 69 73 20 4e 4f 54 20 77 | 68 65 72 65 20 74 68 65 |is NOT w|here the|
|00003af0| 20 73 6e 61 70 73 68 6f | 74 20 77 61 73 2e 0a 58 | snapsho|t was..X|
|00003b00| 20 20 28 69 6e 66 65 72 | 69 6f 72 2d 73 65 6c 66 | (infer|ior-self|
|00003b10| 2d 6d 6f 64 65 29 29 0a | 58 0a 28 64 65 66 75 6e |-mode)).|X.(defun|
|00003b20| 20 73 65 6c 66 2d 73 65 | 6e 64 2d 6f 62 6a 65 63 | self-se|nd-objec|
|00003b30| 74 20 28 64 69 73 70 6c | 61 79 2d 66 6c 61 67 29 |t (displ|ay-flag)|
|00003b40| 0a 58 20 20 22 53 65 6e | 64 20 74 68 65 20 63 75 |.X "Sen|d the cu|
|00003b50| 72 72 65 6e 74 20 6f 62 | 6a 65 63 74 20 74 6f 20 |rrent ob|ject to |
|00003b60| 74 68 65 20 53 65 6c 66 | 20 70 72 6f 63 65 73 73 |the Self| process|
|00003b70| 20 6d 61 64 65 20 62 79 | 20 4d 2d 78 20 72 75 6e | made by| M-x run|
|00003b80| 2d 73 65 6c 66 2e 0a 57 | 69 74 68 20 61 72 67 75 |-self..W|ith argu|
|00003b90| 6d 65 6e 74 2c 20 66 6f | 72 63 65 20 72 65 64 69 |ment, fo|rce redi|
|00003ba0| 73 70 6c 61 79 20 61 6e | 64 20 73 63 72 6f 6c 6c |splay an|d scroll|
|00003bb0| 69 6e 67 20 6f 66 20 74 | 68 65 20 2a 73 65 6c 66 |ing of t|he *self|
|00003bc0| 2a 20 62 75 66 66 65 72 | 2e 0a 56 61 72 69 61 62 |* buffer|..Variab|
|00003bd0| 6c 65 20 60 69 6e 66 65 | 72 69 6f 72 2d 73 65 6c |le `infe|rior-sel|
|00003be0| 66 2d 6c 6f 61 64 2d 63 | 6f 6d 6d 61 6e 64 27 20 |f-load-c|ommand' |
|00003bf0| 63 6f 6e 74 72 6f 6c 73 | 20 66 6f 72 6d 61 74 74 |controls| formatt|
|00003c00| 69 6e 67 20 6f 66 0a 74 | 68 65 20 60 6c 6f 61 64 |ing of.t|he `load|
|00003c10| 27 20 66 6f 72 6d 20 74 | 68 61 74 20 69 73 20 73 |' form t|hat is s|
|00003c20| 65 74 20 74 6f 20 74 68 | 65 20 53 65 6c 66 20 70 |et to th|e Self p|
|00003c30| 72 6f 63 65 73 73 2e 22 | 0a 58 20 20 28 69 6e 74 |rocess."|.X (int|
|00003c40| 65 72 61 63 74 69 76 65 | 20 22 50 22 29 0a 58 20 |eractive| "P").X |
|00003c50| 20 28 6f 72 20 28 67 65 | 74 2d 70 72 6f 63 65 73 | (or (ge|t-proces|
|00003c60| 73 20 22 73 65 6c 66 22 | 29 0a 58 20 20 20 20 20 |s "self"|).X |
|00003c70| 20 28 65 72 72 6f 72 20 | 22 4e 6f 20 63 75 72 72 | (error |"No curr|
|00003c80| 65 6e 74 20 73 65 6c 66 | 20 70 72 6f 63 65 73 73 |ent self| process|
|00003c90| 22 29 29 0a 58 20 20 28 | 73 61 76 65 2d 65 78 63 |")).X (|save-exc|
|00003ca0| 75 72 73 69 6f 6e 0a 58 | 20 20 20 28 62 65 67 69 |ursion.X| (begi|
|00003cb0| 6e 6e 69 6e 67 2d 6f 66 | 2d 6f 62 6a 65 63 74 29 |nning-of|-object)|
|00003cc0| 0a 58 20 20 20 28 6c 65 | 74 20 28 28 62 65 67 69 |.X (le|t ((begi|
|00003cd0| 6e 20 28 70 6f 69 6e 74 | 29 29 0a 58 09 20 28 66 |n (point|)).X. (f|
|00003ce0| 69 6c 65 6e 61 6d 65 20 | 28 66 6f 72 6d 61 74 20 |ilename |(format |
|00003cf0| 22 2f 74 6d 70 2f 65 6d | 73 65 6c 66 25 64 22 20 |"/tmp/em|self%d" |
|00003d00| 28 70 72 6f 63 65 73 73 | 2d 69 64 20 28 67 65 74 |(process|-id (get|
|00003d10| 2d 70 72 6f 63 65 73 73 | 20 22 73 65 6c 66 22 29 |-process| "self")|
|00003d20| 29 29 29 29 0a 58 20 20 | 20 20 20 28 65 6e 64 2d |)))).X | (end-|
|00003d30| 6f 66 2d 6f 62 6a 65 63 | 74 29 0a 58 20 20 20 20 |of-objec|t).X |
|00003d40| 20 28 69 66 20 28 3d 20 | 62 65 67 69 6e 20 28 70 | (if (= |begin (p|
|00003d50| 6f 69 6e 74 29 29 0a 58 | 09 20 28 6d 65 73 73 61 |oint)).X|. (messa|
|00003d60| 67 65 20 22 45 6d 70 74 | 79 20 61 72 65 61 2e 20 |ge "Empt|y area. |
|00003d70| 50 6c 65 61 73 65 20 6d | 6f 76 65 20 69 6e 73 69 |Please m|ove insi|
|00003d80| 64 65 20 6f 62 6a 65 63 | 74 20 79 6f 75 20 77 61 |de objec|t you wa|
|00003d90| 6e 74 20 74 6f 20 73 65 | 6e 64 2e 22 29 0a 58 20 |nt to se|nd.").X |
|00003da0| 20 20 20 20 20 20 28 70 | 72 6f 67 6e 20 0a 58 09 | (p|rogn .X.|
|00003db0| 20 28 77 72 69 74 65 2d | 72 65 67 69 6f 6e 20 62 | (write-|region b|
|00003dc0| 65 67 69 6e 20 28 70 6f | 69 6e 74 29 20 66 69 6c |egin (po|int) fil|
|00003dd0| 65 6e 61 6d 65 20 6e 69 | 6c 20 27 6e 6f 6d 65 73 |ename ni|l 'nomes|
|00003de0| 73 61 67 65 29 0a 58 09 | 20 28 70 72 6f 63 65 73 |sage).X.| (proces|
|00003df0| 73 2d 73 65 6e 64 2d 73 | 74 72 69 6e 67 20 22 73 |s-send-s|tring "s|
|00003e00| 65 6c 66 22 20 28 66 6f | 72 6d 61 74 20 69 6e 66 |elf" (fo|rmat inf|
|00003e10| 65 72 69 6f 72 2d 73 65 | 6c 66 2d 6c 6f 61 64 2d |erior-se|lf-load-|
|00003e20| 63 6f 6d 6d 61 6e 64 20 | 66 69 6c 65 6e 61 6d 65 |command |filename|
|00003e30| 29 29 29 29 29 0a 58 20 | 20 20 28 69 66 20 64 69 |))))).X | (if di|
|00003e40| 73 70 6c 61 79 2d 66 6c | 61 67 0a 58 20 20 20 20 |splay-fl|ag.X |
|00003e50| 20 20 20 28 6c 65 74 2a | 20 28 28 70 72 6f 63 65 | (let*| ((proce|
|00003e60| 73 73 20 28 67 65 74 2d | 70 72 6f 63 65 73 73 20 |ss (get-|process |
|00003e70| 22 73 65 6c 66 22 29 29 | 0a 58 09 20 20 20 20 20 |"self"))|.X. |
|00003e80| 20 28 62 75 66 66 65 72 | 20 28 70 72 6f 63 65 73 | (buffer| (proces|
|00003e90| 73 2d 62 75 66 66 65 72 | 20 70 72 6f 63 65 73 73 |s-buffer| process|
|00003ea0| 29 29 0a 58 09 20 20 20 | 20 20 20 28 77 20 28 6f |)).X. | (w (o|
|00003eb0| 72 20 28 67 65 74 2d 62 | 75 66 66 65 72 2d 77 69 |r (get-b|uffer-wi|
|00003ec0| 6e 64 6f 77 20 62 75 66 | 66 65 72 29 20 28 64 69 |ndow buf|fer) (di|
|00003ed0| 73 70 6c 61 79 2d 62 75 | 66 66 65 72 20 62 75 66 |splay-bu|ffer buf|
|00003ee0| 66 65 72 29 29 29 0a 58 | 09 20 20 20 20 20 20 28 |fer))).X|. (|
|00003ef0| 68 65 69 67 68 74 20 28 | 77 69 6e 64 6f 77 2d 68 |height (|window-h|
|00003f00| 65 69 67 68 74 20 77 29 | 29 0a 58 09 20 20 20 20 |eight w)|).X. |
|00003f10| 20 20 28 65 6e 64 29 29 | 0a 58 09 20 28 73 61 76 | (end))|.X. (sav|
|00003f20| 65 2d 65 78 63 75 72 73 | 69 6f 6e 0a 58 09 20 20 |e-excurs|ion.X. |
|00003f30| 20 28 73 65 74 2d 62 75 | 66 66 65 72 20 62 75 66 | (set-bu|ffer buf|
|00003f40| 66 65 72 29 0a 58 09 20 | 20 20 28 73 65 74 71 20 |fer).X. | (setq |
|00003f50| 65 6e 64 20 28 70 6f 69 | 6e 74 2d 6d 61 78 29 29 |end (poi|nt-max))|
|00003f60| 0a 58 09 20 20 20 28 77 | 68 69 6c 65 20 28 70 72 |.X. (w|hile (pr|
|00003f70| 6f 67 6e 0a 58 09 09 20 | 20 20 20 28 61 63 63 65 |ogn.X.. | (acce|
|00003f80| 70 74 2d 70 72 6f 63 65 | 73 73 2d 6f 75 74 70 75 |pt-proce|ss-outpu|
|00003f90| 74 20 70 72 6f 63 65 73 | 73 29 0a 58 09 09 20 20 |t proces|s).X.. |
|00003fa0| 20 20 28 67 6f 74 6f 2d | 63 68 61 72 20 28 70 6f | (goto-|char (po|
|00003fb0| 69 6e 74 2d 6d 61 78 29 | 29 0a 58 09 09 20 20 20 |int-max)|).X.. |
|00003fc0| 20 28 62 65 67 69 6e 6e | 69 6e 67 2d 6f 66 2d 6c | (beginn|ing-of-l|
|00003fd0| 69 6e 65 29 0a 58 09 09 | 20 20 20 20 28 6f 72 20 |ine).X..| (or |
|00003fe0| 28 3d 20 28 70 6f 69 6e | 74 2d 6d 61 78 29 20 65 |(= (poin|t-max) e|
|00003ff0| 6e 64 29 0a 58 09 09 09 | 28 6e 6f 74 20 28 6c 6f |nd).X...|(not (lo|
|00004000| 6f 6b 69 6e 67 2d 61 74 | 20 69 6e 66 65 72 69 6f |oking-at| inferio|
|00004010| 72 2d 73 65 6c 66 2d 70 | 72 6f 6d 70 74 29 29 29 |r-self-p|rompt)))|
|00004020| 29 29 0a 58 09 20 20 20 | 28 73 65 74 71 20 65 6e |)).X. |(setq en|
|00004030| 64 20 28 70 6f 69 6e 74 | 2d 6d 61 78 29 29 0a 58 |d (point|-max)).X|
|00004040| 09 20 20 20 28 76 65 72 | 74 69 63 61 6c 2d 6d 6f |. (ver|tical-mo|
|00004050| 74 69 6f 6e 20 28 2d 20 | 34 20 68 65 69 67 68 74 |tion (- |4 height|
|00004060| 29 29 0a 58 09 20 20 20 | 28 73 65 74 2d 77 69 6e |)).X. |(set-win|
|00004070| 64 6f 77 2d 73 74 61 72 | 74 20 77 20 28 70 6f 69 |dow-star|t w (poi|
|00004080| 6e 74 29 29 29 0a 58 09 | 20 28 73 65 74 2d 77 69 |nt))).X.| (set-wi|
|00004090| 6e 64 6f 77 2d 70 6f 69 | 6e 74 20 77 20 65 6e 64 |ndow-poi|nt w end|
|000040a0| 29 29 29 29 29 0a 3b 20 | 20 28 6d 65 73 73 61 67 |))))).; | (messag|
|000040b0| 65 20 22 4f 62 6a 65 63 | 74 20 73 65 6e 74 2e 22 |e "Objec|t sent."|
|000040c0| 29 29 0a 58 0a 28 64 65 | 66 75 6e 20 73 65 6c 66 |)).X.(de|fun self|
|000040d0| 2d 73 65 6e 64 2d 6f 62 | 6a 65 63 74 2d 61 6e 64 |-send-ob|ject-and|
|000040e0| 2d 67 6f 20 28 29 0a 58 | 20 20 22 53 65 6e 64 20 |-go ().X| "Send |
|000040f0| 74 68 65 20 63 75 72 72 | 65 6e 74 20 6f 62 6a 65 |the curr|ent obje|
|00004100| 63 74 20 74 6f 20 74 68 | 65 20 69 6e 66 65 72 69 |ct to th|e inferi|
|00004110| 6f 72 20 53 65 6c 66 2c | 20 61 6e 64 20 73 77 69 |or Self,| and swi|
|00004120| 74 63 68 20 74 6f 20 2a | 73 65 6c 66 2a 20 62 75 |tch to *|self* bu|
|00004130| 66 66 65 72 2e 22 0a 58 | 20 20 28 69 6e 74 65 72 |ffer.".X| (inter|
|00004140| 61 63 74 69 76 65 29 0a | 58 20 20 28 73 65 6c 66 |active).|X (self|
|00004150| 2d 73 65 6e 64 2d 6f 62 | 6a 65 63 74 20 6e 69 6c |-send-ob|ject nil|
|00004160| 29 0a 58 20 20 28 73 77 | 69 74 63 68 2d 74 6f 2d |).X (sw|itch-to-|
|00004170| 62 75 66 66 65 72 20 22 | 2a 73 65 6c 66 2a 22 29 |buffer "|*self*")|
|00004180| 29 0a 53 48 41 52 5f 45 | 4f 46 0a 63 68 6d 6f 64 |).SHAR_E|OF.chmod|
|00004190| 20 30 34 34 34 20 73 65 | 6c 66 2e 65 6c 20 7c 7c | 0444 se|lf.el |||
|000041a0| 0a 65 63 68 6f 20 27 72 | 65 73 74 6f 72 65 20 6f |.echo 'r|estore o|
|000041b0| 66 20 73 65 6c 66 2e 65 | 6c 20 66 61 69 6c 65 64 |f self.e|l failed|
|000041c0| 27 0a 57 63 5f 63 3d 22 | 60 77 63 20 2d 63 20 3c |'.Wc_c="|`wc -c <|
|000041d0| 20 27 73 65 6c 66 2e 65 | 6c 27 60 22 0a 74 65 73 | 'self.e|l'`".tes|
|000041e0| 74 20 35 32 30 30 20 2d | 65 71 20 22 24 57 63 5f |t 5200 -|eq "$Wc_|
|000041f0| 63 22 20 7c 7c 0a 09 65 | 63 68 6f 20 27 73 65 6c |c" ||..e|cho 'sel|
|00004200| 66 2e 65 6c 3a 20 6f 72 | 69 67 69 6e 61 6c 20 73 |f.el: or|iginal s|
|00004210| 69 7a 65 20 35 32 30 30 | 2c 20 63 75 72 72 65 6e |ize 5200|, curren|
|00004220| 74 20 73 69 7a 65 27 20 | 22 24 57 63 5f 63 22 0a |t size' |"$Wc_c".|
|00004230| 66 69 0a 23 20 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |fi.# ===|========|
|00004240| 3d 3d 20 52 45 41 44 4d | 45 20 3d 3d 3d 3d 3d 3d |== READM|E ======|
|00004250| 3d 3d 3d 3d 3d 3d 3d 3d | 0a 69 66 20 74 65 73 74 |========|.if test|
|00004260| 20 2d 66 20 27 52 45 41 | 44 4d 45 27 20 2d 61 20 | -f 'REA|DME' -a |
|00004270| 58 22 24 31 22 20 21 3d | 20 58 22 2d 63 22 3b 20 |X"$1" !=| X"-c"; |
|00004280| 74 68 65 6e 0a 09 65 63 | 68 6f 20 27 78 20 2d 20 |then..ec|ho 'x - |
|00004290| 73 6b 69 70 70 69 6e 67 | 20 52 45 41 44 4d 45 20 |skipping| README |
|000042a0| 28 46 69 6c 65 20 61 6c | 72 65 61 64 79 20 65 78 |(File al|ready ex|
|000042b0| 69 73 74 73 29 27 0a 65 | 6c 73 65 0a 65 63 68 6f |ists)'.e|lse.echo|
|000042c0| 20 27 78 20 2d 20 65 78 | 74 72 61 63 74 69 6e 67 | 'x - ex|tracting|
|000042d0| 20 52 45 41 44 4d 45 20 | 28 54 65 78 74 29 27 0a | README |(Text)'.|
|000042e0| 73 65 64 20 27 73 2f 5e | 58 2f 2f 27 20 3c 3c 20 |sed 's/^|X//' << |
|000042f0| 27 53 48 41 52 5f 45 4f | 46 27 20 3e 20 27 52 45 |'SHAR_EO|F' > 'RE|
|00004300| 41 44 4d 45 27 20 26 26 | 0a 48 65 72 65 20 61 72 |ADME' &&|.Here ar|
|00004310| 65 20 74 77 6f 20 66 69 | 6c 65 73 3a 20 73 65 6c |e two fi|les: sel|
|00004320| 66 2e 65 6c 20 61 6e 64 | 20 73 65 6c 66 2d 6d 6f |f.el and| self-mo|
|00004330| 64 65 2e 65 6c 2e 0a 58 | 0a 73 65 6c 66 2e 65 6c |de.el..X|.self.el|
|00004340| 20 70 72 6f 76 69 64 65 | 73 20 61 20 6d 6f 64 65 | provide|s a mode|
|00004350| 20 66 6f 72 20 69 6e 74 | 65 72 61 63 74 69 6e 67 | for int|eracting|
|00004360| 20 77 69 74 68 20 61 20 | 53 65 6c 66 20 72 75 6e | with a |Self run|
|00004370| 6e 69 6e 67 20 69 6e 20 | 61 6e 20 65 6d 61 63 73 |ning in |an emacs|
|00004380| 20 62 75 66 66 65 72 2e | 0a 73 65 6c 66 2d 6d 6f | buffer.|.self-mo|
|00004390| 64 65 2e 65 6c 20 70 72 | 6f 76 69 64 65 73 20 61 |de.el pr|ovides a|
|000043a0| 20 6d 6f 64 65 20 66 6f | 72 20 65 64 69 74 69 6e | mode fo|r editin|
|000043b0| 67 20 53 65 6c 66 20 63 | 6f 64 65 20 61 6e 64 20 |g Self c|ode and |
|000043c0| 73 65 6e 64 69 6e 67 20 | 69 74 20 74 6f 20 61 0a |sending |it to a.|
|000043d0| 58 09 63 75 72 72 65 6e | 74 20 72 75 6e 6e 69 6e |X.curren|t runnin|
|000043e0| 67 20 53 65 6c 66 20 70 | 72 6f 63 65 73 73 2e 0a |g Self p|rocess..|
|000043f0| 58 0a 58 20 20 49 66 20 | 79 6f 75 20 6d 61 6b 65 |X.X If |you make|
|00004400| 20 61 6e 79 20 63 68 61 | 6e 67 65 73 20 6f 72 20 | any cha|nges or |
|00004410| 65 6e 68 61 6e 63 65 6d | 65 6e 74 73 2c 20 70 6c |enhancem|ents, pl|
|00004420| 65 61 73 65 20 6c 65 74 | 20 6d 65 20 6b 6e 6f 77 |ease let| me know|
|00004430| 2e 20 54 68 65 0a 73 65 | 6c 66 2d 69 6e 74 65 72 |. The.se|lf-inter|
|00004440| 65 73 74 20 6d 61 69 6c | 69 6e 67 20 6c 69 73 74 |est mail|ing list|
|00004450| 20 77 6f 75 6c 64 20 70 | 72 6f 62 61 62 6c 79 20 | would p|robably |
|00004460| 61 6c 73 6f 20 61 70 70 | 72 65 63 69 61 74 65 20 |also app|reciate |
|00004470| 6b 6e 6f 77 69 6e 67 2e | 0a 58 0a 58 20 20 54 68 |knowing.|.X.X Th|
|00004480| 65 79 20 61 72 65 20 70 | 61 63 6b 61 67 65 64 20 |ey are p|ackaged |
|00004490| 69 6e 20 73 65 6c 66 2d | 6d 6f 64 65 2e 73 68 61 |in self-|mode.sha|
|000044a0| 72 2e 5a 0a 58 0a 58 0a | 58 20 20 0a 53 48 41 52 |r.Z.X.X.|X .SHAR|
|000044b0| 5f 45 4f 46 0a 63 68 6d | 6f 64 20 30 36 34 34 20 |_EOF.chm|od 0644 |
|000044c0| 52 45 41 44 4d 45 20 7c | 7c 0a 65 63 68 6f 20 27 |README |||.echo '|
|000044d0| 72 65 73 74 6f 72 65 20 | 6f 66 20 52 45 41 44 4d |restore |of READM|
|000044e0| 45 20 66 61 69 6c 65 64 | 27 0a 57 63 5f 63 3d 22 |E failed|'.Wc_c="|
|000044f0| 60 77 63 20 2d 63 20 3c | 20 27 52 45 41 44 4d 45 |`wc -c <| 'README|
|00004500| 27 60 22 0a 74 65 73 74 | 20 34 30 39 20 2d 65 71 |'`".test| 409 -eq|
|00004510| 20 22 24 57 63 5f 63 22 | 20 7c 7c 0a 09 65 63 68 | "$Wc_c"| ||..ech|
|00004520| 6f 20 27 52 45 41 44 4d | 45 3a 20 6f 72 69 67 69 |o 'READM|E: origi|
|00004530| 6e 61 6c 20 73 69 7a 65 | 20 34 30 39 2c 20 63 75 |nal size| 409, cu|
|00004540| 72 72 65 6e 74 20 73 69 | 7a 65 27 20 22 24 57 63 |rrent si|ze' "$Wc|
|00004550| 5f 63 22 0a 66 69 0a 65 | 78 69 74 20 30 0a |_c".fi.e|xit 0. |
+--------+-------------------------+-------------------------+--------+--------+